天天看點

Docker 與 iptables 之間的聯系

本篇是第七部分“網絡篇”的第三篇。在這個部分,我會為你由淺入深的介紹 Docker 網絡相關的内容。包括 Docker 網絡基礎及其實作和内部原理等。上篇,我為你介紹了如何靈活的使用容器網絡。本篇,我們來學習 Docker 與 iptables 之間的聯系。

Docker 能為我們提供如此強大和靈活的網絡能力,很大程度上要歸功與 iptables 的結合。在使用時,你可能沒有太關注到 iptables 的作用,這是因為 Docker 已經幫我們自動完成了。

(MoeLove) ➜  ~ dockerd --help |grep iptables
      --iptables                                Enable addition of iptables rules (default true)
           

Docker Daemon 有個

--iptables

的參數,便是用來控制是否要啟用 iptables 規則的,預設已經設定成了開啟(true)。是以通常我們不會過于關注到它的工作。

本篇,為了避免環境的幹擾,我将使用 Docker in Docker 的環境來為你進行介紹,通過如下方式啟動該環境:

(MoeLove) ➜  ~ docker run --rm -d --privileged docker:dind 
ceb59125626e4ced03f3e4fa73a09b50633ce4f001938f7a8e04804d99420efa
           

iptables 基礎

iptables 是一個用于配置 Linux 核心防火牆的工具,可用于檢測、修改轉發、重定向以及丢棄 IPv4 資料包。它使用了核心的 ip_table