您好,登錄后才能下訂單哦!
這篇文章主要介紹了docker宿主環境中容器網絡是怎么樣的,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
查看docker0 linux bridge:
在宿主機上運行如下命令,從這里面我們看到docker在host上的linux bridge device,另外這個bridge上attach了4個從設備。當然根據上一篇文章,這些從設備一定是veth pair device的一端,而另一端一定是在docker container的network namespace里。
brctl show
查看veth pair從設備:
在宿主機上運行如下命令,從這里面我們看到在host的default network namespace中確實有4個attach到上面docker0 linux bridge上的設備。
ip addr|grep docker0
查看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
進入容器的network namespace里:
這里我們在宿主機器上選擇一個container,用以前文章介紹的kube-debug進入容器內部
kubectl get podsdocker pskubectl-debug deployment-nginx-app-69b6bbfd6d-8n69w --namespace default
查看容器內的veth設備:
在容器中運行以下命令,我們可以看到容器內確實有一個veth設備。根據以前文章,這個veth設備就是veth pair在容器的另一端,并且這一端的設備也是有ip地址的,ip地址就是container的ip地址。當然它的另一端是attach在宿主default namesapce中的docker0 bridge device里了。
ip -d link show
查看容器內的路由表:
在容器中運行以下命令,我們可以看到容器network namesapce中的路由表信息。
默認網關為10.1.27.1/32,其實就是host network namespace中的docker0 bridge的ip地址。
對于10.1.27.0/24網絡地址空間的訪問都是直連訪問,不需要下一跳ip地址。
route -n
根據以上信息總結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宿主環境中容器網絡是怎么樣的”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。