环境:centos7.9、docker20.10.7、mysql5.7镜像

1)关闭防火墙:

systemctl stop firewalld.service

systemctl stop iptables  或者 iptables -F

重启docker:systemctl restart docker

2)在宿主机目录先创建一个my.cnf文件,空文件也行,不然待会儿在映射的时候会把my.cnf挂载成目录

touch /docker/mysql/conf/my.cnf

3)运行mysql5.7镜像

执行docker命令:

docker run -it --name mysql \
	-p 3307:3306 \
	--privileged=true \
	--restart=always \
	-v /docker/mysql/conf/my.cnf:/etc/my.cnf \
	-v /docker/mysql/data:/var/lib/mysql \
	-e TZ='Asia/Shanghai' \
	-e MYSQL_ROOT_PASSWORD=123456 \
	-d mysql:5.7 \
	--character-set-server=utf8mb4 \
	--collation-server=utf8mb4_general_ci \
	--lower_case_table_names=1

查看容器是否正确运行:

docker ps | grep mysql

查看容器日志:

docker logs mysql

释义:

--privileged=true  开启docker特权模式,mysql容器起来后可以直接使用远程工具连接,无需再加入额外的mysql命令允许远程用户访问

--restart=always  允许mysql容器随docker启动而启动

-v 参数,容器与宿主机挂载,形成数据卷映射,这样当你的容器意外被删除,数据仍然得以保留在宿主机上

例如:-v /xxx:/xxx  冒号前面的是宿主机目录,后面是容器目录

-v /docker/mysql/conf/my.cnf:/etc/my.cnf  映射配置文件,如果本地没有,可以创建个空文件

-v /docker/mysql/data:/var/lib/mysql  映射docker的数据目录,你们可以自定义映射目录,后面如果你要进行特定数据备份,那么可以把备份脚本的执行结果重定向到容器的/var/lib/mysql目录,这样你就能直接在宿主机目录/docker/mysql/data中看到你的数据库备份文件

热门互联网IT面经集锦gitee