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

如何理解Docker容器之間的連通性

149次閱讀
沒有評論

共計 1256 個字符,預計需要花費 4 分鐘才能閱讀完成。

如何理解 Docker 容器之間的連通性,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

今天我們將討論這幾個容器之間的連通性。

兩個 busybox 容器都掛在 my_net2 上,應該能夠互通,我們驗證一下

可見同一網絡中的容器、網關之間都是可以通信的。

my_net2  與默認 bridge 網絡能通信嗎?

從拓撲圖可知,兩個網絡屬于不同的網橋,應該不能通信,我們通過實驗驗證一下,讓 busybox 容器 ping httpd 容器。

確實 ping 不通,符合預期。

“等等!不同的網絡如果加上路由應該就可以通信了吧?”我已經聽到有讀者在建議了。

這是一個非常非常好的想法。

確實,如果 host 上對每個網絡的都有一條路由,同時操作系統上打開了 ip forwarding,host 就成了一個路由器,掛接在不同網橋上的網絡就能夠相互通信。下面我們來看看 docker host 滿不滿足這些條件呢?

ip r  查看 host 上的路由表:

# ip r

……

172.17.0.0/16 dev docker0  proto kernel  scope link  src 172.17.0.1

172.22.16.0/24 dev br-5d863e9f78b6  proto kernel  scope link  src 172.22.16.1

……

172.17.0.0/16 和 172.22.16.0/24 兩個網絡的路由都定義好了。再看看 ip forwarding:

# sysctl net.ipv4.ip_forward

net.ipv4.ip_forward = 1

ip forwarding 也已經啟用了。

條件都滿足,為什么不能通行呢?

我們還得看看 iptables:

# iptables-save

……

-A DOCKER-ISOLATION -i br-5d863e9f78b6 -o docker0 -j DROP

-A DOCKER-ISOLATION -i docker0 -o br-5d863e9f78b6 -j DROP

……

原因就在這里了:iptables DROP 掉了網橋 docker0 與 br-5d863e9f78b6 之間雙向的流量。

從規則的命名  DOCKER-ISOLATION  可知 docker 在設計上就是要隔離不同的 netwrok。

那么接下來的問題是:怎樣才能讓 busybox 與 httpd 通信呢?

答案是:為 httpd 容器添加一塊 net_my2 的網卡。這個可以通過 docker network connect  命令實現。

我們在 httpd 容器中查看一下網絡配置

容器中增加了一個網卡 eth2,分配了 my_net2 的 IP 172.22.16.3。現在 busybox 應該能夠訪問 httpd 了,驗證一下。

busybox 能夠 ping 到 httpd,并且可以訪問 httpd 的 web 服務。

關于如何理解 Docker 容器之間的連通性問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注丸趣 TV 行業資訊頻道了解更多相關知識。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1256字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 同仁县| 香格里拉县| 东兴市| 中阳县| 都兰县| 酉阳| 乌拉特后旗| 天柱县| 镇雄县| 开封县| 余干县| 彩票| 习水县| 太仓市| 玉门市| 永善县| 怀化市| 秀山| 巴林左旗| 兴安县| 汉中市| 霍城县| 霍州市| 南通市| 巢湖市| 上思县| 台山市| 墨竹工卡县| 乐清市| 鸡西市| 廊坊市| 交口县| 兴隆县| 从江县| 康定县| 鄱阳县| 南郑县| 大余县| 神木县| 东山县| 若羌县|