一、linux版本:
lsb_release -a
二、现象:
firewalld 防火墙开启状态,未开放3306端口;但是本地依然可以链接mysql服务
三、原因:
docker run -p 启动的时候会往iptables里面添加规则,firewall底层是基于iptables的,所以-p参数启动等于在防火墙上打了个洞
四、解决方案(Dokcer禁用iptables防火墙)
# 如果没有这个文件则新建 格式是json的格式
vi /etc/docker/daemon.json
# 添加如下一行
"iptables":false
# 开启转发
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload
# 开启开放ip(docker0)
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address="172.17.0.0/16" accept'
firewall-cmd --reload
# 重启docker
systemctl restart docker
注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!