1、拉取镜像
使用 docker pull mysql命令拉取镜像。指定版本就使用 docker pull mysql:指定版本号
使用 docker images | grep mysql可以查看下载的mysql镜像。这里以最新版mysql为例,也就是mysql8.x。
2、创建本地挂载目录
mkdir /home/ubuntu/workplace/dockers/mysql/logs
mkdir /home/ubuntu/workplace/dockers/mysql/data
mkdir /home/ubuntu/workplace/dockers/mysql/conf
目录自行创建就行,主要在本地挂载一些容器的文件
3、创建mysql容器并运行,获取配置文件
docker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD=root mysql
使用docker ps命令查看是否启动成功
使用docker cp命令将容器内的配置文件拷贝至宿主机。
docker cp mysql:/etc/mysql/conf.d /home/ubuntu/workplace/dockers/mysql/conf
然后停止并删除mysql容器
docker stop mysql
docker rm mysql
4、再次启动mysql容器,并将数据挂载至宿主机。
docker run -p 3306:3306 \
--name mysql \
--privileged=true \
--restart always \
-e MYSQL_ROOT_PASSWORD=root \
-v /home/ubuntu/workplace/dockers/mysql/logs:/logs \
-v /home/ubuntu/workplace/dockers/mysql/data:/var/lib/mysql \
-v /home/ubuntu/workplace/dockers/mysql/conf/conf.d:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime \
-d mysql
命令 | 解释 |
---|---|
-p 3306:3306 | 容器(后)3306端口映射到宿主机(前)的3306端口 |
--name mysql | 容器的名字设置为mysql |
--privileged=true | 赋予容器root权限,不然可能无法挂载目录 |
--restart always | 容器总是重启 |
-e MYSQL_ROOT_PASSWORD=root | 初始化mysql的root密码为root |
-v /home/ubuntu/workplace/dockers/mysql/logs:/logs | 挂载日志目录 |
-v /home/ubuntu/workplace/dockers/mysql/data:/var/lib/mysql | 挂载数据目录 |
-v /home/ubuntu/workplace/dockers/mysql/conf/conf.d:/etc/mysql/conf.d | 挂载配置文件目录 |
-v /etc/localtime:/etc/localtime | 同步宿主机和容器的时间 |
-d | 后台启动 |
使用docker ps查看是否运行
navicat连接成功