docker创建mysql
centos安装docker的方法可以到https://docs.docker.com/engine/install/centos/参考
1.操作系统
本文中操作系统用的是centos7
2.centos中创建mysql实例
2.1首先需要下载mysql8的镜像
这里用的镜像为mysql的最新版本,如果需要别的版本的mysql,可以自行去docker hub中找到自己想要下载的mysql版本
冒号后跟随的是版本好,我这里使用的是最新版本
[root@localhost ~]# docker pull mysql:latest
2.2创建mysql实例
这里如果用的最新的mysql版本,遇到了个小问题,如果没有耐心的伙伴可以直接看下一个标题
docker run -p 3306:3306 --name mysql -v /docker_data/mysql/log:/var/log/mysql -v /docker_data/mysql/data:/var/lib/mysql -v /docker_data/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=724055 -d mysql:latest
上述创建mysql实例的命令中
参数 | 说明 |
-p 3306:3306 | 将容器的3306端口映射到主机的3306端口 |
--name mysql | 给实例起名 |
-v /docker_data/mysql/log:/var/log/mysql | 将容器中的/var/log/mysql 挂载到宿主机的/docker_data/mysql/log |
-v /docker_data/mysql/data:/var/lib/mysql | |
-v /docker_data/mysql/conf:/etc/mysql | |
-e MYSQL_ROOT_PASSWORD=724055 | 给实例的root用户指定密码 |
2.3查看实例状态
[root@localhost ~]# docker ps -a
我们看到docker的状态为Exited,并非Up,由此可知实例是启动失败了
查看日志(最后面的mysql为我们创建实例时给的实例名),可以看出是因为容器中只有/var/lib/mysql-files目录并没有我们所指定的/var/lib/mysql目录
[root@localhost ~]# docker logs mysql
删除实例重建(最后的字符串是实例id),可以看到mysql实例已经成功启动
[root@localhost ~]# docker rm -f 1c6827c773b3
[root@localhost ~]# docker run -p 3306:3306 --name mysql -v /docker_data/mysql/log:/var/log/mysql -v /docker_data/mysql/data:/var/lib/mysql-files -v /docker_data/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=724055 -d mysql:latest