真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

docker宿主環(huán)境中的容器網(wǎng)絡(luò)是什么意思

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

成都創(chuàng)新互聯(lián)公司是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護、成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、網(wǎng)站備案、服務(wù)器租用、申請域名、軟件開發(fā)、成都微信小程序等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運營推廣經(jīng)驗的科技公司,有著多年的網(wǎng)站建站經(jīng)驗,致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個面向全國乃至全球的業(yè)務(wù)窗口:建站歡迎來電:13518219792

在介紹docker宿主環(huán)境中的容器網(wǎng)絡(luò)的時候我們先大致了解如下一些概念和知識:

  • Linux Network Namespace

  • Linux Bridge Device

  • Linux Veth Device

Linux Network Namespace:

一提到linux網(wǎng)絡(luò),本質(zhì)上就是由一系列組件組成,從而共同協(xié)作完成網(wǎng)絡(luò)功能,一般這些組件包括:

  • linux網(wǎng)絡(luò)設(shè)備:例如network interface device,loop back device,bridge device,veth device,tun/tap device,vxlan device,ip tunnel device等等。這些設(shè)備可以完成網(wǎng)絡(luò)數(shù)據(jù)包的收發(fā),以及提供額外的修改數(shù)據(jù)包等功能。

  • linux路由表,arp表,fdb(forwarding database)等:路由表提供三層ip包的路由尋址功能,arp表提供ip對應的二層mac地址,fdb在在基于mac轉(zhuǎn)發(fā)的功能里提供mac地址對應的網(wǎng)絡(luò)接口。

  • linux協(xié)議棧:完成對網(wǎng)絡(luò)協(xié)議包的封裝與解析,例如二層ethernet包,三層ip包,四層tcp/udp包,還有類似icmp包等等。

  • linux iptable:iptable基于linux內(nèi)核模塊netfilter,完成對于linux的firewall管理,例如控制ingress與engress,nat地址轉(zhuǎn)換,端口映射等等。

linux network namespace就像是一個可以相互隔離的組一樣,把網(wǎng)絡(luò)設(shè)備,路由表,協(xié)議棧,iptable等組件包裝起來,然后通過namespace來相互隔離,互不干擾。所以更具體的說,網(wǎng)絡(luò)設(shè)備,路由表,協(xié)議棧,iptable等是工作在某一個linux network namespace下的。而我們平時看到的linux主機的網(wǎng)卡,路由表,arp表,協(xié)議棧,iptable都是工作在主機的默認網(wǎng)絡(luò)命名空間下,下圖用來表述linux network namespace:

docker宿主環(huán)境中的容器網(wǎng)絡(luò)是什么意思

當然linux不僅僅只有network namespace用來進行網(wǎng)絡(luò)隔離,還有pid namespace用來隔離進程,user namespace用來隔離用戶,mount namespace用來隔離掛載點,ipc namespace用來隔離信號量和共享內(nèi)存等,uts namespace用來隔離主機名和域名。再結(jié)合上linux cgroup控制組,用來限制資源,例如cpu,memory,io等。這些基礎(chǔ)知識構(gòu)成了容器的底層實現(xiàn),有興趣的同學可以研究一下linux namespace,cgroup,ufs等基礎(chǔ)知識,你會發(fā)現(xiàn)docker等容器技術(shù)都是基于這些實現(xiàn)的。

Linux Bridge網(wǎng)橋:

Bridge是一種linux網(wǎng)絡(luò)設(shè)備,可以附加attach多個linux從設(shè)備。大家可以把linux bridge想象成二層交換機,可以進行二層數(shù)據(jù)包的廣播,但是注意的是linux bridge設(shè)備可以有自己的ip地址。也就是說,多個linux網(wǎng)絡(luò)設(shè)備attach到一個bridge上,那么這些網(wǎng)絡(luò)設(shè)備的ip地址將會失效(只有二層功能),當一個設(shè)備收到數(shù)據(jù)包的時候,bridge會把數(shù)據(jù)包轉(zhuǎn)發(fā)到其它所有attach到bridge上的從設(shè)備,從而實現(xiàn)廣播的效果。下圖用來表述linux bridge:

docker宿主環(huán)境中的容器網(wǎng)絡(luò)是什么意思

Linux Veth設(shè)備:

Veth設(shè)備總是成對出現(xiàn),它的特點是會有一對peer,兩個端點,數(shù)據(jù)包從一個peer流入,總是可以從另一個peer流出。而且veth pair是可以跨linux network namespace的,這個特性很重要。玄外之音,因為network namespace本質(zhì)就是相互隔離的,可以用veth來做到數(shù)據(jù)包的跨network namespace的訪問。當然是一個peer在一個namespace里,另一個peer在另一個namespace里了。下圖用來表述linux veth pair設(shè)備:docker宿主環(huán)境中的容器網(wǎng)絡(luò)是什么意思

docker宿主環(huán)境中的容器網(wǎng)絡(luò):

有了以上知識基礎(chǔ),當講到這里的時候,其實就已經(jīng)比較清晰了。對于docker宿主環(huán)境中容器的網(wǎng)絡(luò)一般是:

  • 每一個container都有一個network namespace,然后擁有container自己的網(wǎng)絡(luò)設(shè)備,路由表,arp表,協(xié)議棧,iptable等,各個container的network namespace相互隔離。

  • 在宿主的default netwok nemespace中會有一個linux bridge設(shè)備,一般名稱為docker0。

  • 每一個container對應一個veth pair設(shè)備,這個設(shè)備的一端在container的network namespace里,另一端attach到宿主networkwork namespace的docker0 linux bridge上。

  • 這樣在宿主環(huán)境里,就好像有一個二層交換機(docker0 bridge),把宿主內(nèi)的所有container連接起來。所以,在宿主內(nèi)的container都是可以直接相互訪問的,而且是直連的方式。

下圖用來表述宿主環(huán)境中的容器網(wǎng)絡(luò):

docker宿主環(huán)境中的容器網(wǎng)絡(luò)是什么意思

感謝你能夠認真閱讀完這篇文章,希望小編分享的“docker宿主環(huán)境中的容器網(wǎng)絡(luò)是什么意思”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!


網(wǎng)頁名稱:docker宿主環(huán)境中的容器網(wǎng)絡(luò)是什么意思
本文URL:http://weahome.cn/article/jojecs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部