久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Docker容器如何訪問外部世界

共計(jì) 1005 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。

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

容器訪問外部世界

在我們當(dāng)前的實(shí)驗(yàn)環(huán)境下,docker host 是可以訪問外網(wǎng)的。

容器默認(rèn)就能訪問外網(wǎng)。

請(qǐng)注意:這里外網(wǎng)指的是容器網(wǎng)絡(luò)以外的網(wǎng)絡(luò)環(huán)境,并非特指 internet。

現(xiàn)象很簡(jiǎn)單,但更重要的:我們應(yīng)該理解現(xiàn)象下的本質(zhì)。

在上面的例子中,busybox 位于  docker0  這個(gè)私有 bridge 網(wǎng)絡(luò)中(172.17.0.0/16),當(dāng) busybox 從容器向外 ping 時(shí),數(shù)據(jù)包是怎樣到達(dá) bing.com 的呢?

這里的關(guān)鍵就是 NAT。我們查看一下 docker host 上的 iptables 規(guī)則

在 NAT 表中,有這么一條規(guī)則:

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

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

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

默認(rèn)路由通過 enp0s3 發(fā)出去,所以我們要同時(shí)監(jiān)控 enp0s3 和 docker0 上的 icmp(ping)數(shù)據(jù)包。

當(dāng) busybox ping bing.com 時(shí),tcpdump 輸出如下:

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

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

這就是 iptable NAT 規(guī)則處理的結(jié)果,從而保證數(shù)據(jù)包能夠到達(dá)外網(wǎng)。

busybox 發(fā)送 ping 包:172.17.0.2 www.bing.com。

docker0 收到包,發(fā)現(xiàn)是發(fā)送到外網(wǎng)的,交給 NAT 處理。

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

ping 包從 enp0s3 發(fā)送出去,到達(dá) www.bing.com。

通過 NAT,docker 實(shí)現(xiàn)了容器對(duì)外網(wǎng)的訪問。

上述內(nèi)容就是 Docker 容器如何訪問外部世界,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計(jì)1005字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 北海市| 保康县| 邵武市| 万盛区| 汕尾市| 额尔古纳市| 安国市| 微山县| 兴和县| 仁怀市| 沂南县| 黄骅市| 怀来县| 昆山市| 洛川县| 陆川县| 夏河县| 治县。| 时尚| 乐安县| 陕西省| 公主岭市| 新丰县| 城市| 原平市| 科尔| 临江市| 黄浦区| 龙南县| 平阴县| 清镇市| 柏乡县| 黄大仙区| 遵化市| 临泉县| 瑞安市| 太原市| 洱源县| 海丰县| 荥经县| 二连浩特市|