在线拉取MySQL 8.0.36镜像:
docker pull mysql:8.0.36
离线情况
在有网络的环境中下载MySQL 8.0.36的Docker镜像,并保存为tar文件:
docker save mysql:8.0.36 -o mysql-8.0.36.tar
上传到离线服务器后执行
docker load -i mysql-8.0.36.tar
启动镜像,使用下面的命令就可以启动镜像了
docker run -itd --name mysql8.0.36 -p 3310:3306 --privileged=true -e MYSQL_ROOT_PASSWORD=Jie@1234 mysql:8.0.36
解释:
-i :即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用
-t:分配一个伪tty,一般与 -i 连用
-d:在后台运行容器,并且打印容器id
–name:镜像名称
-p:端口映射,容器内端口3306映射到容器外的3306上
–privileged:为容器提供权限
-e:设置镜像参数
MYSQL_ROOT_PASSWORD:设置root用户的密码
此时,在容器内部已经初始化好了MySQL了,但是一般来说,我们需要把MySQL的配置文件和datadir挂在到docker外部,所以我们还需要后面的步骤
mkdir -p /opt/hstech/mysql8.0.36/config
mkdir -p /opt/hstech/mysql8.0.36/data
进入config目录
cd /opt/hstech/mysql8.0.36/config
把config文件从镜像内部复制出来
docker cp mysql8.0.36:/etc/my.cnf ./
编辑my.conf文件
vim my.conf
新增不区分大小写
lower_case_table_names=1
停掉并删除之前启动的MySQL镜像
docker stop mysql8.0.36
docker rm mysql8.0.36
重启MySQL
docker run -itd --name mysql8.0.36 -p 3310:3306 --privileged=true --restart=always -v /opt/hstech/mysql8.0.36/data:/var/lib/mysql -v /opt/hstech/mysql8.0.36/config/my.cnf:/etc/my.cnf -e MYSQL_ROOT_PASSWORD=Jie@1234 mysql:8.0.36
这里设置了开机自启
查看是否启动成功
docker ps