2015-10-29 68 views
2

我想知道是否需要在容器中啓用防火牆。 (客戶操作系統)我是否必須在Docker容器上啓用防火牆?

在傳統IaaS(如GCE和Amazon EC2)上,必須配置防火牆。 (在CentOS 6上的iptables,在7上的firewalld,在Ubuntu上的ufw) 但是,Dockerfile有EXPOSE,我猜Docker拒絕訪問除Dockerfile中聲明的所有端口。

高於我的期望是否正確?

注意:這是關於容器(來賓操作系統)內的操作系統,而不是Docker主機。由於我正在使用Google Container Engine,因此我的興趣僅限於現在的客人。

回答

1

這取決於你想要防火牆的人。既然你特別說容器引擎,Bryan上面的答案是不適用的。

您是否在羣集中嘗試使用防火牆?或者您是否試圖抵禦Google雲計劃的其他項目?或者你是否試圖抵禦互聯網?

在一個集羣中,假設(到目前爲止)是運行的進程都在同一個空間中。我認爲未來幾個月我們會看到該領域的更多增長(網絡政策),但這就是今天的情況,所以沒有自動化的集成防火牆設置。

同樣在Google Cloud項目中。

關於互聯網,你應該關閉你的雲防火牆,以防你沒有明確地暴露給世界的任何東西。這應該是默認的。如果您不確定這一點,請檢查雲端控制檯。當您使用Kubernetes公開服務時,我們會自動爲您打開防火牆。

+0

我想抵禦互聯網,而不是其他機器在同一個項目內。我忘了使用GCP防火牆功能的最佳方式。 –

3

您不必在容器內啓用或配置防火牆。

關鍵的原因是Docker已經爲每個容器和發佈的端口添加了iptables規則,並且如果需要的話Docker與firewalld進行通信。 (iptables,ufw和firewalld都提供了一個netfilter底層實現的視圖;它在內部都是一樣的)。

請注意,沒有「客戶操作系統」;容器內的所有內容都與外部相同的內核運行。也許有一些不同的用戶級工具,但不是一個單獨的操作系統。

此外,Docker不會安裝任何規則來阻止未公開的端口。

相關問題