一、拉取镜像
建议在拉取镜像时,指定版本号,不然在每次执行docker restart命令时,docker都会去拉取最新的镜像,高版本可能会出现不兼容的现象,导致原有的配置失效。
# 拉取最新镜像
docker pull mysql:latest
# 拉取指定版本镜像
docker pull mysql:8.0.23
二、拷贝镜像的文件夹到本机
# 创建文件夹
sudo mkdir -p /usr/local/docker/mysql
# 授权读写权限
sudo chmod -R 777 /usr/local/docker/mysql/
如果需要修改MySQL配置,只需要去/usr/local/docker/mysql/conf下创建my.cnf文件就可以了
三、创建实例
# 执行下面命令,运行实例。
# -e MYSQL_ROOT_PASSWORD 是设置root用户密码,
# -e LANG=C.UTF-8 是设置容器内部的编码格式,避免MySQL的编码格式与容器不一致,导致中文乱码
# -e MYSQL_CHARSET 是设置数据库的默认编码格式和排序方式
docker run -d -p 3306:3306 \
--privileged=true \
-v "/usr/local/docker/mysql/data":"/var/lib/mysql" \
-v "/usr/local/docker/mysql/logs":"/var/log/mysql" \
-v "/usr/local/docker/mysql/conf":"/etc/mysql/conf.d" \
-e MYSQL_ROOT_PASSWORD="123456" \
-e LANG=C.UTF-8 \
-e MYSQL_CHARSET=utf8mb4 \
-e MYSQL_COLLATION=utf8mb4_unicode_ci \
--name mysql mysql:8.0.23
四、设置开机自启动
# 设置当docker运行时自动启动容器
docker update mysql --restart=always
# 如果要关闭开机自动启动运行以下命令
docker update mysql --restart=no
五、进入容器登录MySQL
# 进入容器实例
docker exec -it mysql bash
# 登录MySQL
mysql -uroot -p
输入密码