1、前面用Docker安装了mysql,没有用防火墙开放3306端口,但是我们也确实可以访问数据库,原因是Docker利用了iptables管理了防火墙,而这种管理在firewalld中还看不到。
2、Dokcer禁用iptables防火墙
vi /etc/docker/daemon.json
# 如果没有这个文件则新建 格式是json的格式
# 添加如下一行
"iptables":false
3、重启docker
systemctl restart docker
4、开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
5、重新加载防火墙配置
firewall-cmd --reload
6、查看防火墙已经开放的端口
firewall-cmd --zone=public --list-ports