1.打开docker仓库地址
2.找到mysql复制对应版本的docker命令

3.执行拉取命令
docker pull mysql:5.7

4.查看本机都有哪些镜像,看mysql镜像是否拉取成功
sudo docker images

5.创建并启动我们的mysql的docker容器,命令如下
docker run -p 3306:3306 --name mysql \
-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 \
-d mysql:5.7
参数说明:
-p 3306:3306 :将容器的3306端口映射到主机的3306端口
--name mysql: 容器别名
-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用户的密码
-d mysql:5.7以后台方式启动,以mysql:5.7镜像启动

6.查看运行的镜像
docker ps

在这里并没有查看到正在运行的mysql镜像
使用命令查看,可以看到Mysql容器几秒前退出了
docker ps -a

可以看到mysql镜像在启动后就退出了,意味着启动失败了。
使用命docker logs [容器id] 命令查看日志
docker logs 9a77f9d42a1f

日志中说明挂载权限不足。
解决办法
- 在docker run中加入 –privileged=true 给容器加上特定权限
- 关闭selinux
- 在selinux添加规则,修改挂载目录de
这里用第一种:
首先将之前的mysql容器移除。执行docker rm [容器id] 命令
docker rm 9a77f9d42a1f
在docker run中加入privileged=true 重新创建mysql容器并启动。执行如下命令
docker run -p 3306:3306 --name="mysql" --privileged=true\
-v /mydata/mysql/conf:/etc/mysql/ \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=970323 \
-d mysql:5.7
再次查看正在运行的镜像
docker ps

至此mysql镜像启动成功
7.进入容器内部
执行命令docker exec -it 容器id/容器名 /bin/bash
docker exec -it mysql /bin/bash
![]()
8.登录mysql
mysql -uroot -p

9.接着就可以像在windows中一样操作mysql

(1)输入quit命令回车退出mysql状态
(2)使用快捷键退出当前mysql容器
ctrl+d :退出容器且关闭, docker ps 查看无
ctrl+p+q :退出容器但不关闭, docker ps 查看有
10.使用navicat连接docker中的mysql
查看虚拟机中的ip地址,输入命令
ip addr

打开navicat根据ip新建连接输入密码,设置端口号为2222即可连接

10.虚拟机重启后如何启动mysql镜像
(1)启动docker
systemctl start docker
(2)停止docker
systemctl stop docker
(3)重启docker
systemctl restart docker
(4)启动/停止/重启mysql镜像,执行docker start/stop/restart [容器id] /[容器别名]命令
docker start 1215dc2d74d5
docker start mysql

本文详细介绍了如何通过Docker拉取和启动MySQL镜像,处理权限问题,包括挂载权限不足、SELinux和特权模式。最终成功启动并管理MySQL容器,包括登录和连接方法。
2万+

被折叠的 条评论
为什么被折叠?



