91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker容器如何訪問外部世界

發布時間:2021-11-19 10:39:46 來源:億速云 閱讀:570 作者:柒染 欄目:云計算

本篇文章為大家展示了Docker容器如何訪問外部世界,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

容器訪問外部世界

在我們當前的實驗環境下,docker host 是可以訪問外網的。

容器默認就能訪問外網

請注意:這里外網指的是容器網絡以外的網絡環境,并非特指 internet。

現象很簡單,但更重要的:我們應該理解現象下的本質。

在上面的例子中,busybox 位于 docker0 這個私有 bridge 網絡中(172.17.0.0/16),當 busybox 從容器向外 ping 時,數據包是怎樣到達 bing.com 的呢?

這里的關鍵就是 NAT。我們查看一下 docker host 上的 iptables 規則

在 NAT 表中,有這么一條規則:

-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE

其含義是:如果網橋 docker0 收到來自 172.17.0.0/16 網段的外出包,把它交給 MASQUERADE 處理。而 MASQUERADE 的處理方式是將包的源地址替換成 host 的地址發送出去,即做了一次網絡地址轉換(NAT)。

下面我們通過 tcpdump 查看地址是如何轉換的。先查看 docker host 的路由表:

默認路由通過 enp0s3 發出去,所以我們要同時監控 enp0s3 和 docker0 上的 icmp(ping)數據包。

當 busybox ping bing.com 時,tcpdump 輸出如下:

docker0 收到 busybox 的 ping 包,源地址為容器 IP 172.17.0.2,這沒問題,交給 MASQUERADE 處理。這時,在 enp0s3 上我們看到了變化:

ping 包的源地址變成了 enp0s3 的 IP 10.0.2.15

這就是 iptable NAT 規則處理的結果,從而保證數據包能夠到達外網。

  1. busybox 發送 ping 包:172.17.0.2 > www.bing.com。

  2. docker0 收到包,發現是發送到外網的,交給 NAT 處理。

  3. NAT 將源地址換成 enp0s3 的 IP:10.0.2.15 > www.bing.com。

  4. ping 包從 enp0s3 發送出去,到達 www.bing.com。

通過 NAT,docker 實現了容器對外網的訪問。

上述內容就是Docker容器如何訪問外部世界,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁远县| 南涧| 淳化县| 灵璧县| 涿鹿县| 高碑店市| 荆州市| 自贡市| 常州市| 新野县| 徐州市| 思南县| 介休市| 明光市| 萨迦县| 土默特右旗| 广昌县| 六盘水市| 盘山县| 宾阳县| 怀宁县| 丹阳市| 长沙县| 攀枝花市| 丰台区| 稷山县| 双鸭山市| 宁波市| 根河市| 密云县| 丁青县| 都江堰市| 岳阳县| 冀州市| 连山| 益阳市| 白山市| 永仁县| 北安市| 稻城县| 阿合奇县|