firewalld 不阻止 docker 容器端口

Mic*_*ook 5 firewalld docker centos7

我想在我的 centos 7 机器上显式打开端口,因此我在面向公众的界面上将防火墙配置为 drop 作为默认区域和外部区域。当我运行python -m SimpleHTTPServer 8000并点击端口 8000 上的盒子时,它失败了。但是如果我将端口添加到外部区域。有用。一切都如预期。

但是,当我在端口 8000 上启动 docker 容器并在外部点击该框时,我可以访问该服务。这不是我想要发生的事情。我希望只有在外部区域上打开端口 8000 时才能访问它。

即使我将 docker 容器绑定到盒子的公共地址,它仍然可以绕过防火墙。如果需要,我可以提供更多信息,例如路由表和接口配置,但我不太知道什么有用。寻找学习。

该盒子上有两个物理接口,eth0 分配有公共 IP,eth1 连接到专用网络,我希望能够访问。

编辑已解决添加--iptables=false到泊坞窗选项。

Mic*_*ook 3

\n

请记住,Docker 会打开防火墙中的端口,除非您明确告诉它不要这样做。\xe2\x80\x93

\n
\n\n

只需添加--iptables=false到 docker 选项即可。

\n

  • 如果我添加“--iptables=false”,它会使我的所有容器无法访问 docker0 之外的任何主机。是否需要在firewalld中添加转发规则? (2认同)