docker容器間網路通訊

2021-08-03 14:22:01 字數 905 閱讀 2818

我們都知道,同主機同網路下的容器可以通過容器的網橋來進行通訊,但是不同網路的容器不能通訊。原因是什麼呢?

參考 這個帖子,我自己做了實驗,記錄一下

檢視主機ip**是否開啟 sysctl net.ipv4.ip_forward。既然已經開啟,且各個網橋都連線在主機上,為什麼不能ping通 ?

我們看一下ip 的設定

可以看到

172.17.0.0/16 對應docker0

172.22.16.0/24 對應 br-31420d31f051

檢視iptables的設定

發現iptables會把docker0和br-31420d31f051兩個網段的流量drop掉,所以兩個網段無法通訊。

一般我們可以通過為容器配置網絡卡的方式把容器加入另乙個網段,這樣就可以互相通訊。

執行docker network connect network_name containerid

此時進入容器,發現容器有兩個虛擬網絡卡,即對應兩個ip位址

此時容器ping通

盜圖一張,來自 這個帖子

docker容器的網路通訊(複習五)

docker容器的網路通訊主要是多個容器之間通過網路通訊進行相互配合。兩種網路通訊的方式 埠對映實現訪問容器 如果要從外部訪問某個容器的時候,需要知道某個容器的埠,然後從這個埠訪問容器。而進行埠對映的時候使用 p或者 p來指定埠對映。p是隨機對映乙個埠。p 是指定乙個埠來進行網路服務。建議使用 p....

docker容器網路通訊 外部訪問內部

外部世界訪問內網 原理 埠對映 1.執行乙個容器,開啟容器80埠對映 2.檢視,發現物理機的80並沒有開 netstat napt grep 80 3.檢視docker ps,發現容器內部開的80埠只是對映到物理機的乙個隨機埠上。4.通過訪問物理機的ip位址 隨機埠,可以訪問到這個httpd的容器的...

Docker 容器間通訊

name 給執行的容器起乙個名字 docker run d name web tomcat 執行centos 必須進入互動介面 it 進入互動模式 docker run d name database it centos bin bash inspect 檢視docker內部原始檔案。docker ...