拉取mysql镜像
docker pull mysql
在宿主机上创建mysql容器的卷,进入自己想要放置的目录,比如cd /opt/msql ,然后创建以下三个目录
mkdir log data conf
创建MySQL容器时会挂载为容器的卷(Volume),用于Docker和宿主机(Centos)之间共享文件,包括配置文件、数据文件和日志文件。
什么是卷(Volume)?命令 docker -v 中的“-v”就是这个卷,“-v”只是“--volume”的简写。
Docker官方文档解释卷的含义:https://docs.docker.com/storage/volumes/
Docker Hub官方教程文档中提到两种方式去运行新容器:【使用自定义的 .cnf 配置文件
】和【配置选项作为标志传递给mysqld,不用写xxx.cnf配置文件
】。
方式一:不使用.cnf配置文件,将配置放到容器运行命令后
执行运行容器命令
docker run --name mysql -v /opt/mysql/log:/var/log/mysql -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=shaomysql -d mysql --init-connect="SET collation_connection=utf8mb4_0900_ai_ci" --init-connect="SET NAMES utf8mb4" --skip-character-set-client-handshake
方式二:在宿主机容器卷conf目录下创建配置文件,配置文件名称随意,后缀必须是cnf
[mysqld]
init-connect="SET collation_connection=utf8mb4_0900_ai_ci"
init_connect="SET NAMES utf8mb4"
skip-character-set-client-handshake
对应的容器启动命令
docker run --name mysql -v /opt/mysql/log:/var/log/mysql -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=111111 -d mysql
之后使用docker ps 查看运行情况,再用navicat尝试连接