1.拉取镜像
dockerhub官网:Docker
如果需要其他版本mysql
docker pull mysql:xxx(版本)
docker pull mysql #默认拉取最新版本 latest
2.运行容器
docker run -d -p 3306:3306 --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql mysql:latest
-p 3306:3306 指定宿主机端口和容器端口映射关系
--privileged=true 获取宿主机root权限
--restart=always 总是跟随docker启动
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read
only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
-d mysql:latest:后台运行mysql容器,版本是latest。
3.创建mysql配置文件
上面已经挂载了mysql的配置文件目录,就可以直接在宿主机操作对应的目录了
在配置文件目录新建一个my.cnf配置文件,写入下面内容,设置客户端和mysql服务器端编码都为
utf8
如果不设置客户端和mysql服务器编码一致 会出现编码问题
[client] default_character_set=utf8 [mysqld] collation_server=utf8_general_ci character_set_server=utf8
4.测试
并且mysql的数据目录也已经挂载到本地了,就算把容器删除创新创建一个容器,也使用同样的数
据卷,就可以恢复之前创建的库表