如何配置Centos 7 FirewallD以允许Docker容器自由访问主机的网络端口?


32

我在CentOS 7上安装了docker,并且正在运行firewallD。

从容器内部转到主机(默认为172.17.42.1)

启用防火墙

container# nc -v  172.17.42.1  4243
nc: connect to 172.17.42.1 port 4243 (tcp) failed: No route to host

关闭防火墙

container# nc -v  172.17.42.1  4243
Connection to 172.17.42.1 4243 port [tcp/*] succeeded!

我已经阅读了关于firewalld的文档,但我并不完全理解它们。有没有一种方法可以简单地允许docker容器中的所有内容(我猜是在docker0适配器上)不受限制地访问主机?

Answers:


30

也许比以前的答案更好;

firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
firewall-cmd --reload

6
我相信add-port是多余的。如果docker0标记为受信任,则该端口将始终被允许通过。
马特·休斯

6
@MattHughes在没有的情况下对我有用add-port。您还需要重新启动docker
rdupz

1
在防火墙重启后工作,而不是
docker上

10

这些命令可以达到目的:

firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.