中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

docker宿主環境中容器網絡是怎么樣的

發布時間:2021-11-18 09:51:29 來源:億速云 閱讀:146 作者:小新 欄目:大數據

這篇文章主要介紹了docker宿主環境中容器網絡是怎么樣的,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

查看docker0 linux bridge:

在宿主機上運行如下命令,從這里面我們看到docker在host上的linux bridge device,另外這個bridge上attach了4個從設備。當然根據上一篇文章,這些從設備一定是veth pair device的一端,而另一端一定是在docker container的network namespace里。


brctl show

docker宿主環境中容器網絡是怎么樣的

查看veth pair從設備:

在宿主機上運行如下命令,從這里面我們看到在host的default network namespace中確實有4個attach到上面docker0 linux bridge上的設備。


ip addr|grep docker0

docker宿主環境中容器網絡是怎么樣的

查看docker容器:

在宿主機上運行如下命令,我們看到確實是有4個k8s pod容器在運行,根據上一篇文章,每個容器都有一個network namespace,所以也印證了上面命令中的docker0 bridge上attach的4個設備。這里有同學可能會有疑問,明明是8個容器,為什么說是4個呢?細心的同學應該觀察出來了,另外4個都是同樣的image。沒錯,這是因為在k8s中,每個pod都需要有infrastructure image的(在以前文章安裝kubelet的時候我們通過啟動參數--pod-infra-container-image配置過這個基礎image),而k8s中這個基礎image的container和我們應用程序的image的container是共用同一個network namespace的。所以在k8s的pod之中,infrastructure image產生的container和同一個pod中所有application image產生的container在同一個network namespace里,當然這里就是4個network namespace了。


docker ps

docker宿主環境中容器網絡是怎么樣的

進入容器的network namespace里:

這里我們在宿主機器上選擇一個container,用以前文章介紹的kube-debug進入容器內部




kubectl get podsdocker pskubectl-debug deployment-nginx-app-69b6bbfd6d-8n69w --namespace default

docker宿主環境中容器網絡是怎么樣的

docker宿主環境中容器網絡是怎么樣的

查看容器內的veth設備:

在容器中運行以下命令,我們可以看到容器內確實有一個veth設備。根據以前文章,這個veth設備就是veth pair在容器的另一端,并且這一端的設備也是有ip地址的,ip地址就是container的ip地址。當然它的另一端是attach在宿主default namesapce中的docker0 bridge device里了。


ip -d link show

docker宿主環境中容器網絡是怎么樣的

查看容器內的路由表:

在容器中運行以下命令,我們可以看到容器network namesapce中的路由表信息。

  • 默認網關為10.1.27.1/32,其實就是host network namespace中的docker0 bridge的ip地址。

  • 對于10.1.27.0/24網絡地址空間的訪問都是直連訪問,不需要下一跳ip地址。


route -n

docker宿主環境中容器網絡是怎么樣的

根據以上信息總結docker宿主中的網絡:

  • 宿主中容器的網絡地址空間一般為x.x.x.0/24,每一個container屬于一個獨立的network namespace。

  • 宿主的default network namespace中會有linux bridge,一般名字是docker0,其ip地址為x.x.x.1/32。

  • 每個container會有一個veth pair device對應,這個veth pair一端在container的network namespace中,有ip地址,并且這個ip地址就是容器的ip地址。veth pair的另一端attach到宿主network namespace中的linux bridge docker0上,以完成container network namespace和宿主network namespace之間的數據流動。

  • container的默認網關是x.x.x.1/32,也就是宿主network namespace中的linux bridge docker0的ip地址。

  • container到容器的網絡地址空間(x.x.x.0/24)的訪問方式為直連,不需要下一跳ip。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“docker宿主環境中容器網絡是怎么樣的”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

宁津县| 遵义市| 如东县| 分宜县| 宁城县| 海口市| 锡林浩特市| 清远市| 梅河口市| 连平县| 和政县| 宜丰县| 旬阳县| 兴国县| 开化县| 郯城县| 蒙城县| 平阳县| 瑞安市| 松江区| 舟山市| 军事| 永寿县| 西昌市| 成武县| 玉环县| 固原市| 黄冈市| 石景山区| 红河县| 龙岩市| 柯坪县| 铜鼓县| 错那县| 宝清县| 宜都市| 房产| 临邑县| 河源市| 宕昌县| 新竹市|