docker容器之間連接方式

 

創建一個容器就會創建一個它的network netspace

查看當前機器有哪些docker網絡:

docker network ls

結果:

 

查看指定網絡的元數據

docker network inspect NETWORKID

在得到的結果中,Containers字段包含的內容是使用此網絡的所有容器

 

查看bridge網絡使用的接口:brctl show

得到的結果中interfaces是本機連接bridge所使用的接口

同一個宿主機,兩個容器之間是如何通信的

宿主機每創建一個容器,就會創建一個bridge接口連接到,同時容器也會創建一個bridge接口,這一對接口都連接在docker0這個bridge,這樣就可以通信了。

下面是示例圖,

兩個容器分別是兩個不同的network netspace,連接的是主機默認的一個network netspace,通過這個兩對線就連在了一起

對於單個容器它是如何訪問internet呢?

如果宿主機可以通過eth0訪問外網,那麼docker0通過一個NAT進行網絡地址轉換,那麼容器訪問外網時經過docker0這個bridge並之後通過NAT進行地址轉換eth0的地址,它就會作爲一個linux主機的數據包發到外面去

 

1.通過link

例如:

通過busybox創建一個容器名爲test1

docker run -d --name test1 busybox /bin/sh -c "while true; do sleep 3600; done"

 再用busybox創建一個容器名爲test2,創建test2時使用了link鏈接了test1

docker run -d --name test2 --link test1 busybox /bin/sh -c "while true; do sleep 3600; done"

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章