使用docker安装mysql

Posted 爱上口袋的天空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用docker安装mysql相关的知识,希望对你有一定的参考价值。

1:通过docker下载指定版本的mysql
   命令:
        sudo docker pull mysql:5.7
2: 查看下载的镜像
   命令:
       sudo docker images
3: 使用root用户创建实例并启动mysql
    命令:    
        docker run -p 3306:3306 --privileged=true --name mysql \\
        -v /mydata/mysql/log:/var/log/mysql \\
        -v /mydata/mysql/data:/var/lib/mysql \\
       -v /mydata/mysql/conf:/etc/mysql/conf.d \\
        -e MYSQL_ROOT_PASSWORD=root \\
        -d mysql:5.7
    参数说明:
        -p 3306:3306 表示将容器(创建的mysql容器)的3306端口映射到主机(centos7)的3306端口
        -v /mydata/mysql/conf:/etc/mysql 将配置文件夹挂载到主机(前一个是宿主机目录,后一个是镜像容器目录)
        -v /mydata/mysql/log:/var/log/mysql 将日志文件夹挂载到主机(前一个是宿主机目录,后一个是镜像容器目录)
        -v /mydata/mysql/data:/var/lib/mysql 将配置文件夹挂载到主机(前一个是宿主机目录,后一个是镜像容器目录)
        -e MYSQL_ROOT_PASSWORD=root 初始化root用户的密码
        --name mysql 为容器指定名称为mysql
        -d mysql:5.7 后台运行名称为mysql,版本为5.7的镜像
        
        注意:
            上面-v挂载的文件夹内容,镜像容器都会同步到centos7对应的挂载目录/mydata/mysql/下,可以到centos7环境中查看,
            修改centos7环境中对应目录下的配置文件,mysql对应的挂载目录文件也会变化

4:查看正在运行的镜像容器
   命令:
        docker ps
        
5: 使用客户端去链接一下
     信息:
        ip地址(centos7容器配置的ip地址): 192.168.56.10
        端口号:3306
        用户名密码: root/root
6: 我们启动的mysql是一个完整的运行环境,可以把它看成一个完整的linux,如下我们可以进入到mysql内部
    1):进入mysql内部的命令(下面表示进入到容器的/bin/bash目录下)
        docker exec -it 容器ID /bin/bash
    2):进入后可以使用linux命令操作,
        例如:
            查看目录结构:ls /    
            查看mysql的安装目录:whereis mysql    
           
7:修改mysql的字符编码
    1):进入我们centos7的挂载目录(需要新建my.cnf)
        cd /mydata/mysql/conf
        vi my.cnf
    2):my.cnf的内容如下
        [client]
        default-character-set=utf8
         
        [mysql]
        default-character-set=utf8
         
        [mysqld]
        init_connect='SET collation_connection = utf8_unicode_ci'
        init_connect='SET NAMES utf8'
        character-set-server=utf8
        collation-server=utf8_unicode_ci
        skip-character-set-client-handshake
8:重启mysql
    docker restart mysql(创建的容器名称)

9:最后进入到mysql容器中,查看对应的挂载目录/etc/mysql中是否有my.cnf文件
   docker exec -it mysql /bin/bash
   cd /etc/mysql
   ls

10:设置容器开机自动启动
    命令:
        sudo docker update 容器名称 --restart=always
    sudo docker update mysql --restart=always

11、如果mysql连接不上有可能是宿主机路由的问题

我们路由没开的话就会导致宿主机于容器实例网络隔绝,所以是要打开的

1)查看路由是否打开

        sysctl net.ipv4.ip_forward #返回值为1代表路由已开启,为0就是未开启

2)开启路由

echo “net.ipv4.ip_forward = 1” >>/etc/sysctl.conf #将命令写入到/etc/sysctl.conf文件中
sysctl -p #加载内核
sysctl net.ipv4.ip_forward #再次查看路由是否开启

以上是关于使用docker安装mysql的主要内容,如果未能解决你的问题,请参考以下文章

阿里云服务器使用docker安装mysql

阿里云服务器使用docker安装mysql

使用docker安装mysql5.7

使用docker安装mysql5.7

使用docker安装mysql5.7

使用 Docker 安装并连接 MySQL