Docker部署MySQL+挂载目录+配置

0x01 拉取并运行

# 拉取
docker pull mysql:5.7

# 运行
docker run -p 3306:3306 --name mysql 
-v /mydata/mysql/log:/var/log/mysql 
-v /mydata/mysql/data:/var/lib/mysql 
-v /mydata/mysql/conf:/etc/mysql 
-e MYSQL_ROOT_PASSWORD=root 
--restart=always 
-d mysql:5.7
	# -p 主机端口:容器端口
		- 容器端口映射到主机对应端口
	# --name 容器名称
	# -v 主机目录:容器目录
		- 分别挂载log、data和conf目录到主机的mydata/mysql目录
	# -e MYSQL_ROOT_PASSWORD=密码
		- 设置root密码
	# --restart=always
		- 在重启docker时,自动启动mysql容器
	# -d 
		- 以后台方式运行

0x02 配置MySQL

vi /mydata/mysql/conf/my.conf
# 配置文件内容
[client]
default-character-set=utf-8

[mysql]
default-character-set=utf-8

[mysqlld]
init_connect=SET collation_connection=utf8_unicode_ci
init_connect=SET NAMES utf8
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

# 重启容器
docker restart mysql

0x03 开启端口

# 查看防火墙状态
systemctl status firewalld
# 查看zone名称
firewall-cmd --get-active-zones
# 添加端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看端口是否开放
firewall-cmd --query-port=3306/tcp
防火墙操作

firewall(centos7)

systemctl status firewalld			# 查看状态
systemctl start firewalld			# 启动,
systemctl enable firewalld			# 开机启动
systemctl restart firewalld		 	# 重启
systemctl stop firewalld			# 关闭
systemctl disable firewalld			# 取消开机启动

iptables

service iptables status				# 查看状态
service iptables start				# 单次开启,下次根据配置是否开启
service iptables stop				# 单次关闭,下次根据配置是否开启
chkconfig iptables on				# 配置开启,需重启
chkconfig iptables off				# 配置关闭,需重启
经验分享 程序员 微信小程序 职场和发展