1、拉取mysql镜像
docker pull mysql:8.0
2、查看拉取镜像的IMAGE ID
docker images
3、创建自定义文件夹
mkdir -p /dockerStudy/mysql/mysql1/conf /dockerStudy/mysql/mysql1/data
4、run一个mysql容器将其配置文件复制到/dockerStudy/mysql/mysql1/conf下,根据自己需求配置
#run
docker run -d -p 3306:3306 --name myMysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0
#进入容器
docker exec -it mysql或者mysql容器ID /bin/bash
#查找Docker内,MySQL配置文件my.cnf的位置
mysql --help | grep my.cnf
#以下为结果
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
#复制配置文件到指定文件夹(注意:不同版本my.cnf所在位置不一样,但一定在上述结果的其中一个内)
docker cp myMysql:/etc/my.cnf /dockerStudy/mysql/mysql1/conf
#复制mysql数据文件到指定目录(可选,这里不使用)
docker cp myMysql:/var/lib/mysql /dockerStudy/mysql/mysql1/data
5、删除之前的容器
6、重新run容器(指定数据卷)
docker run -d -p 3306:3306 \
--name mysql1 \
--privileged=true \
--restart=unless-stopped \
-v /dockerStudy/mysql/mysql1/conf/my.cnf:/etc/my.cnf \
-v /dockerStudy/mysql/mysql1/logs:/var/log/mysql \ #可选
-v /dockerStudy/mysql/mysql1/data:/var/lib/mysql \ #可选
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0
7、此时即可访问
8、远程访问
#开放端口
sudo ufw allow 3306