我必须在docker容器上启用防火墙吗



我想知道是否需要在容器中启用防火墙。(客户操作系统)

在传统的IaaS(如GCE和AmazonEC2)上,您必须配置防火墙。(iptables在centos6上,firewalld在7上,ufw在Ubuntu上)然而,Dockerfile有EXPOSE,我猜Docker拒绝访问除Dockerfile中声明的端口之外的所有端口。

超出我的预期是正确的吗?

注意:这是关于容器内的操作系统(来宾操作系统),而不是Docker主机。因为我使用的是谷歌容器引擎,所以目前我的兴趣仅限于访客。

您不必在容器内启用或配置防火墙。

关键原因是Docker已经为每个容器和发布的端口添加了iptables规则,必要时Docker会与firewalld进行通信。(iptables、ufw和firewalld都展示了底层netfilter实现的视图;内部都是一样的)。

请注意,没有"来宾操作系统";容器中的所有内容都在与外部相同的内核上运行。也许有一些不同的userland工具,但不是一个单独的操作系统。

此外,Docker不会安装任何规则来阻止未公开的端口。

这取决于您想要防火墙的用户。由于您特别提到Container Engine,Bryan的上述回答不适用。

您正在尝试在群集中设置防火墙吗?还是你在试图防御你的谷歌云项目的其余部分?还是你在试图抵御互联网?

在集群中,假设(到目前为止)运行的进程都在同一空间中。我认为在未来几个月里,我们将看到这一领域的更多增长(网络政策),但这就是今天的情况,因此没有自动化、集成的防火墙设置。

在谷歌云项目中也是如此。

关于互联网,你应该关闭你的云防火墙,因为你不需要向世界公开任何东西。这应该是默认设置。如果您对此不确定,请登录云控制台。当您使用Kubernetes公开服务时,我们会自动为您打开防火墙。

最新更新