如果您使用的是 iptables 防火墙,只需在/etc/docker/daemon.json 文件中添加以下内容:
{
"iptables": false
}
firewalld 与ufw的操作有些不同
#ubuntu(ufw)操作为
vim /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
vim /etc/ufw/before.rules
#在`*filter`前面添加下面内容
*nat
:POSTROUTING ACCEPT [:]
-A POSTROUTING ! -o docker0 -s 172.17.0.0/ -j MASQUERADE
COMMIT
#对应 CentOS(firewalld)上操作为:
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD_direct -i eth0 -j ACCEPT #eth0 为宿主机网卡名
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD_direct -o eth0 -j ACCEPT
firewall-cmd --reload
#默认 docker0 在 public zone 里
firewall-cmd --zone=public --add-masquerade
firewall-cmd --reload
转载请注明:汇站网 » 解决 Docker 容器端口映射时,自动放行防火墙端口的方法