版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Docker容器技術(shù)與應(yīng)用湖北
輕工職業(yè)技術(shù)學(xué)院Docker網(wǎng)絡(luò)和數(shù)據(jù)卷管理項目4項目背景隨著云計算技術(shù)的普及,容器化部署成為企業(yè)構(gòu)建應(yīng)用的重要方式。在生產(chǎn)環(huán)境中,業(yè)務(wù)系統(tǒng)往往由多個服務(wù)組件容器構(gòu)成,它們之間的高效協(xié)作、數(shù)據(jù)的持久化存儲以及跨容器的數(shù)據(jù)共享變得不可或缺,這使Docker網(wǎng)絡(luò)和數(shù)據(jù)卷管理的需求愈發(fā)凸顯。Docker網(wǎng)絡(luò)和數(shù)據(jù)卷管理項目4在生產(chǎn)環(huán)境中,經(jīng)常會碰到需要多個服務(wù)組件容器共同協(xié)作、對數(shù)據(jù)進(jìn)行持久化,或者在多個容器之間共享進(jìn)程數(shù)據(jù)等操作。本項目通過2個任務(wù)介紹了Docker網(wǎng)絡(luò)管理、數(shù)據(jù)卷管理的內(nèi)容,可實現(xiàn)跨主機甚至跨數(shù)據(jù)中心的通信,以及容器內(nèi)數(shù)據(jù)的共享、備份和恢復(fù)。項目四:Docker網(wǎng)絡(luò)和數(shù)據(jù)卷管理目錄任務(wù)4.1、Docker網(wǎng)絡(luò)管理任務(wù)4.2、Docker數(shù)據(jù)卷管理Docker容器資源控制回顧1、了解控制組(CGroups)的功能2、利用CGoups對CPU進(jìn)行控制的方法3、利用CGoups對內(nèi)存進(jìn)行控制的方法4、利用CGoups對I/O進(jìn)行控制的方法知識目標(biāo)了解Docker網(wǎng)絡(luò)架構(gòu)。了解Docker網(wǎng)絡(luò)模式。掌握Docker網(wǎng)絡(luò)的配置和使用。能力目標(biāo)掌握Docker網(wǎng)絡(luò)的配置方法。掌握Docker容器互連的方法。素質(zhì)目標(biāo)培養(yǎng)精益求精的工匠精神。樹立誠實守信的職業(yè)素養(yǎng)。公司員工通過參考工程師小王編寫的Docker鏡像和容器操作手冊,對Docker的操作有了初步了解,但只能實現(xiàn)對容器的基本操作。公司員工希望對Docker的網(wǎng)絡(luò)、存儲技術(shù)進(jìn)行學(xué)習(xí)。小王通過查閱相關(guān)資料,編寫了關(guān)于Docker網(wǎng)絡(luò)管理的操作手冊。任務(wù)4.1Docker網(wǎng)絡(luò)管理任務(wù)要求4.1Docker容器網(wǎng)絡(luò)架構(gòu)
容器不是獨立的,多個Docker容器可以連接到一起,或者需要與外部網(wǎng)絡(luò)進(jìn)行通信,這就需要使用Docker網(wǎng)絡(luò)。網(wǎng)絡(luò)可以說是虛擬化技術(shù)最復(fù)雜的部分之一,也是Docker應(yīng)用是最重要的環(huán)節(jié)之一。Docker網(wǎng)絡(luò)配置主要解決容器的網(wǎng)絡(luò)連接和容器之間、容器與外部網(wǎng)絡(luò)之間的通信問題。
從覆蓋范圍上可以將Docker網(wǎng)絡(luò)劃分為單主機上的網(wǎng)絡(luò)和跨主機的網(wǎng)絡(luò)。Docker無論是在單主機上進(jìn)行部署,還是在多主機的集群上部署,都需要和網(wǎng)絡(luò)打交道。Docker通過一整套dockernetwork子命令和跨主機的網(wǎng)絡(luò)支持,允許用戶根據(jù)應(yīng)用的拓?fù)浣Y(jié)構(gòu)創(chuàng)建虛擬網(wǎng)絡(luò)并將容器接入其所對應(yīng)的網(wǎng)絡(luò)。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1Docker容器網(wǎng)絡(luò)架構(gòu)
為了標(biāo)準(zhǔn)化網(wǎng)絡(luò)的驅(qū)動開發(fā)步驟和支持多種網(wǎng)絡(luò)驅(qū)動,Docker公司在Libnetwork中使用了容器網(wǎng)絡(luò)模型(ContainerNetworkModel,CNM)。CNM提供了可以跨不同網(wǎng)絡(luò)基礎(chǔ)架構(gòu)、可實現(xiàn)移植的應(yīng)用,能夠在平衡應(yīng)用的可移植性的同時,不損失基礎(chǔ)架構(gòu)原有的各種特性和功能。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1Docker容器網(wǎng)絡(luò)架構(gòu)
CNM中包括沙盒(Sandbox)、端點(EndPoint,EP)和網(wǎng)絡(luò)(Network)3個核心組件。圖4-1CNM核心組件的連接任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1
Docker容器網(wǎng)絡(luò)架構(gòu)
(1)沙盒:包含容器的網(wǎng)絡(luò)配置。可以對容器接口、路由表和域名系統(tǒng)(DomainNameSystem,DNS)設(shè)置等進(jìn)行管理。沙盒的實現(xiàn)可以基于Linux網(wǎng)絡(luò)命名空間、FreeBSDJail或其他類似概念。一個沙盒可以有多個端點和多個網(wǎng)絡(luò)。
(2)端點:沙盒通過端點來連接網(wǎng)絡(luò)。端點的實現(xiàn)可以基于vethpair、OpenVSwitch內(nèi)部端口或者相似的設(shè)備。一個端點只可以屬于一個網(wǎng)絡(luò)并且只屬于一個沙盒。
(3)網(wǎng)絡(luò):一個網(wǎng)絡(luò)是一組可以直接互相連通的端點,可以由Linux橋接、虛擬局域網(wǎng)(VirtualLAN,VLAN)等來實現(xiàn)。端點如果不連接到其中一個網(wǎng)絡(luò),那么將無法與外界連接。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1CNM負(fù)責(zé)為容器提供網(wǎng)絡(luò)功能。CNM核心組件與容器的關(guān)聯(lián)方式如下:沙盒被放置在容器內(nèi)部,為容器提供網(wǎng)絡(luò)連接。
容器A只有一個端點,連接到了網(wǎng)絡(luò)A;容器B有兩個端點,分別連接到網(wǎng)絡(luò)A和網(wǎng)絡(luò)B;容器A與容器B通過網(wǎng)絡(luò)A實現(xiàn)相互通信,容器B的兩個端點之間不能通信,如需通信,則需要三層網(wǎng)絡(luò)設(shè)備的支持。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1一個EP端點只可以屬于一個網(wǎng)絡(luò)并且只屬于一個沙盒一個網(wǎng)絡(luò)是一組可以直接互相連通的端點用戶可以創(chuàng)建一個或多個網(wǎng)絡(luò),一個容器可以加入一個或多個網(wǎng)絡(luò)。同一個網(wǎng)絡(luò)中的容器可以相互通信,不同網(wǎng)絡(luò)中的容器相互隔離。在創(chuàng)建容器之前,用戶可以先創(chuàng)建網(wǎng)絡(luò),然后再將容器添加到網(wǎng)絡(luò),即創(chuàng)建容器與創(chuàng)建網(wǎng)絡(luò)是分開的。Docker
的本地網(wǎng)絡(luò)實現(xiàn)是利用了Linux
的NetworkNamespace
和虛擬網(wǎng)絡(luò)設(shè)備(主要是VirtualEthernetPair),在本地主機和容器內(nèi)分別創(chuàng)建一個虛擬接口,并使它們彼此連通。NetworkNamespace
為容器提供了獨立的網(wǎng)絡(luò)環(huán)境。VirtualEthernetPair
簡稱VETHPair,是一對端口,所有從這對端口進(jìn)入的數(shù)據(jù)包都將從另一端出來,反之也是一樣。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1Docker網(wǎng)絡(luò)的實現(xiàn)原理Docker使用Linux橋接,會在宿主機上虛擬一個名為docker0的網(wǎng)橋。當(dāng)啟動容器時,默認(rèn)會根據(jù)網(wǎng)橋的網(wǎng)段分配給容器一個IP地址,該地址稱為Container-IP,同時網(wǎng)橋地址是每個容器的默認(rèn)網(wǎng)關(guān)。當(dāng)同一宿主機的容器都接入該網(wǎng)橋時,容器之間可以通過Container-IP地址相互通信。由于Docker網(wǎng)橋是宿主機虛擬出來的,并不是真實存在的網(wǎng)絡(luò)設(shè)備,因此外部網(wǎng)絡(luò)無法直接通過Container-IP訪問到容器。如果容器希望外部網(wǎng)絡(luò)能夠訪問到容器,則可以通過在宿主機和容器之間進(jìn)行端口映射,即在創(chuàng)建容器時通過-p或者-P參數(shù)來啟用端口映射,這樣在訪問容器的時候就能夠通過[宿主機IP]:[容器端口]訪問到容器。#dockerrun-d--nametest01-Pnginx //指定隨機端口,隨機端口從32768開始#dockerrun-d--nametest02-p8001:80nginx //指定映射端口驅(qū)動描述Host沒有命名空間隔離,相當(dāng)于Docker容器和宿主機共同用一個網(wǎng)絡(luò)命名空間,使用宿主機的網(wǎng)卡、IP和端口等信息BridgeDocker的默認(rèn)設(shè)置驅(qū)動,受Docker管理的Linux橋接網(wǎng)絡(luò)。默認(rèn)同一個橋網(wǎng)絡(luò)的容器可以相互通信Overlay提供多主機的容器網(wǎng)絡(luò)互連,使用了本地Linux橋接網(wǎng)絡(luò)和VXLAN技術(shù)實現(xiàn)容器之間跨物理網(wǎng)絡(luò)架構(gòu)的連接None容器擁有自己的網(wǎng)絡(luò)命名空間,但不為容器進(jìn)行任何網(wǎng)絡(luò)配置。如果沒有其他網(wǎng)絡(luò)配置,則容器將完全獨立于網(wǎng)絡(luò)任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1Docker網(wǎng)絡(luò)模式容器網(wǎng)絡(luò)模型提供了供用戶使用的接口,接口主要用于通信、利用供應(yīng)商提供的附加功能、網(wǎng)絡(luò)可見性及網(wǎng)絡(luò)控制等。目前廣泛使用的網(wǎng)絡(luò)驅(qū)動包括內(nèi)置網(wǎng)絡(luò)驅(qū)動和遠(yuǎn)程網(wǎng)絡(luò)驅(qū)動。常用的內(nèi)置網(wǎng)絡(luò)驅(qū)動如表所示。Docker網(wǎng)絡(luò)模式
當(dāng)使用dockerrun命令創(chuàng)建Docker容器時,可以使用--net選項指定容器的網(wǎng)絡(luò)模式,Docker有以下4種網(wǎng)絡(luò)模式。(1)host模式,使用--net=host指定。(2)container模式,使用--net=container:NAME_or_ID指定。(3)none模式,使用--net=none指定。(4)bridge模式,使用--net=bridge指定,是Docker容器的默認(rèn)設(shè)置。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1Docker網(wǎng)絡(luò)模式Docker安裝后,會自動創(chuàng)建host、null和bridge網(wǎng)絡(luò),可以利用dockernetworkls命令進(jìn)行查看。[root@localhost~]#dockernetworklsNETWORKIDNAMEDRIVERSCOPEf31c1651be9b bridgebridgelocalde73493d5b60hosthostlocalf414b28986c3nonenulllocal任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.11.host模式在host模式下,容器中的文件系統(tǒng)、進(jìn)程列表等資源和宿主機是隔離的,但容器的網(wǎng)絡(luò)環(huán)境隔離性被弱化,容器不再擁有隔離的、獨立的網(wǎng)絡(luò)棧,容器內(nèi)部不會擁有所有的端口資源,這是因為部分端口資源會被宿主機上的應(yīng)用服務(wù)所占用。啟動容器時,容器將不會獲得獨立的網(wǎng)絡(luò)命名空間,而是和宿主機共用網(wǎng)絡(luò)命名空間。容器不會虛擬出網(wǎng)卡并配置IP地址,而是使用宿主機的IP地址和端口。例如,利用nginx鏡像創(chuàng)建容器并啟動,監(jiān)聽80端口,網(wǎng)絡(luò)模式設(shè)置為host模式。[root@localhost~]#dockerrun-dit--net=host-p80:80nginx任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.11.host模式容器啟動后,如需訪問容器中的nginx應(yīng)用,則可直接使用“IP地址:80”格式的語句,不需要做網(wǎng)絡(luò)地址轉(zhuǎn)換(NetworkAddressTranslation,NAT),host模式示例如圖所示。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.11.host模式任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.11、host模式:使用--net=host指定。2、相當(dāng)于VMware中的橋接模式,與宿主機在同一個網(wǎng)絡(luò)中,但是沒有獨立的ip。3、Docker使用Linux的namespace技術(shù)來進(jìn)行資源隔離,如pidnamespace隔離進(jìn)程,mountnamespace隔離文件系統(tǒng),networknamespace隔離網(wǎng)絡(luò)等。4、一個networknamespace提供了一份獨立的網(wǎng)絡(luò)環(huán)境,包括網(wǎng)卡、路由、iptables規(guī)則等都與其他networknamespace隔離。5、一個Docker容器一般會分配一個獨立的neworknamespace,但是如果啟動容器的時候使用host模式,那么這個容器不會獲得一個獨立的networknamespace,而是和宿主機共用一個networknamespace。容器將不會虛擬出自己的網(wǎng)卡,配置自己的ip等,而是使用宿主機的ip和端口,此時容器不再擁有隔離的,獨立的網(wǎng)絡(luò)棧,不擁有所有端口資源。任務(wù)4.1Docker網(wǎng)絡(luò)管理總結(jié)4.12.container模式container模式指定了新創(chuàng)建的容器和已經(jīng)存在的容器共享一個網(wǎng)絡(luò)命名空間,而不是和宿主機共享。雖然多個容器共享網(wǎng)絡(luò)環(huán)境,但容器和容器、容器和宿主機之間依然形成了網(wǎng)絡(luò)隔離,這在一定程度上可以節(jié)約網(wǎng)絡(luò)資源。但需要注意的是,容器內(nèi)部依然不會擁有所有的端口資源。例如,利用busybox鏡像創(chuàng)建容器busybox1和busybox2,將busybox2的網(wǎng)絡(luò)設(shè)置為continer模式,與busybox1容器共享網(wǎng)絡(luò)環(huán)境。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.12.container模式[root@localhost~]#dockerrun-it--namebusybox1busybox/#ipa……inet172.17.0.2/16brd172.17.255.255scopeglobaletho[root@localhost~]#dockerrun-it--namebusybox2--netcontaioner:busybox1busybox//busybox2容器使用的是busybox1容器的網(wǎng)絡(luò)。/#ipa……inet172.17.0.2/16brd172.17.255.255scopeglobaletho任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.12.container模式總結(jié):1、container模式:使用--net=container:NAME_or_ID指定。2、這個模式指定新創(chuàng)建的容器和已經(jīng)存在的一個容器共享一個NetworkNamespace,而不是和宿主機共享。新創(chuàng)建的容器不會創(chuàng)建自己的網(wǎng)卡,配置自己的IP,而是和一個指定的容器共享IP,端口范圍等??梢栽谝欢ǔ潭壬瞎?jié)省網(wǎng)絡(luò)資源,容器內(nèi)依然不會擁有所有端口。3、同樣,兩個容器除了網(wǎng)絡(luò)方面,其他的如文件系統(tǒng),進(jìn)程列表等還是隔離的。4、兩個容器的進(jìn)程可以通過io網(wǎng)卡設(shè)備通信。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.12.container模式任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.13.none模式
在none模式下,Docker容器擁有自己的網(wǎng)絡(luò)命名空間,但是并不進(jìn)行任何網(wǎng)絡(luò)配置。該模式關(guān)閉了容器的網(wǎng)絡(luò)功能,此時容器沒有網(wǎng)卡、IP地址、路由等信息。none模式如圖所示。用戶可以根據(jù)需要為容器添加網(wǎng)卡、配置IP地址等。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.13.none模式例如,使用busybox創(chuàng)建鏡像容器,容器名稱為busybox1,將網(wǎng)絡(luò)模式設(shè)置為none,并為容器配置IP地址。#dockerrun-dit--name=test_busybox1--net=nonebusybox:latest/#ipaddress1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueueqlen1000link/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet127.0.0.1/8scopehostlovalid_lftforeverpreferred_lftforeverinet6::1/128scopehostvalid_lftforeverpreferred_lftforever任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.13.none模式從命令執(zhí)行的返回信息可知,由于none模式不包含任何的網(wǎng)絡(luò)配置,其網(wǎng)絡(luò)配置信息中只包含127.0.0.1的地址。none網(wǎng)絡(luò)模式的應(yīng)用場景通常包括:當(dāng)不希望容器接收任何網(wǎng)絡(luò)流量時,可以使用none網(wǎng)絡(luò)模式。當(dāng)想要在容器內(nèi)運行某些特殊的服務(wù)時,這些服務(wù)不需要網(wǎng)絡(luò)連接,如某些后臺任務(wù)或守護(hù)進(jìn)程。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.13.none模式
總結(jié)1、none模式:使用--net=none指定。2、使用none模式,docker容器有自己的networkNamespace,但是并不為Docker容器進(jìn)行任何網(wǎng)絡(luò)配置。也就是說,這個Docker容器沒有網(wǎng)卡,IP,路由等信息。3、這種網(wǎng)絡(luò)模式下,容器只有IO回環(huán)網(wǎng)絡(luò),沒有其他網(wǎng)卡。4、這種類型沒有辦法聯(lián)網(wǎng),但是封閉的網(wǎng)絡(luò)能很好的保證容器的安全性。5、該容器將完全獨立于網(wǎng)絡(luò),用戶可以根據(jù)需要為容器添加網(wǎng)卡。此模式擁有所有端口。(none網(wǎng)絡(luò)模式配置網(wǎng)絡(luò))。6、特殊情況下才會用到,一般不用。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.13.none模式任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.14.bridge模式Docker默認(rèn)使用bridge模式,在bridge模式下會為每一個容器分配網(wǎng)絡(luò)命名空間,并設(shè)置IP地址等信息。宿主機上啟動的Docker容器會連接到一個虛擬網(wǎng)橋上,當(dāng)Docker進(jìn)程啟動時,會默認(rèn)創(chuàng)建一個名為docker0的虛擬網(wǎng)橋。容器通過docker0網(wǎng)橋和IP表的NAT配置與宿主機通信。Docker利用vethpair技術(shù),在宿主機上創(chuàng)建兩個虛擬網(wǎng)絡(luò)接口——veth0和veth1。vethpair設(shè)備是一對成對的接口,數(shù)據(jù)從這對接口的一端進(jìn)入,從另一端輸出。在bridge模式下,Docker容器的通信方式分為容器與宿主機通信、容器與外部網(wǎng)絡(luò)通信兩種。Linux中的veth是一對能互相連接、互相通信的虛擬網(wǎng)卡。通過使用它,我們可以讓Docker容器和宿主機通信,或者是在兩個Docker容器中進(jìn)行交流。
任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.14.bridge模式
不過在實際中,我們會想在一臺物理機上我們虛擬出來幾個、甚至幾十個容器,以求得充分壓榨物理機的硬件資源。但這樣帶來的問題是大量的容器之間的網(wǎng)絡(luò)互聯(lián)。很明顯上面簡單的veth互聯(lián)方案是沒有辦法直接工作的,我們該怎么辦???回頭想一下,在物理機的網(wǎng)絡(luò)環(huán)境中,多臺不同的物理機之間是如何連接一起互相通信的呢?沒錯,那就是以太網(wǎng)交換機。同一網(wǎng)絡(luò)內(nèi)的多臺物理機通過交換機連在一起,然后它們就可以相互通信了。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.14.bridge模式在我們的網(wǎng)絡(luò)虛擬化環(huán)境里,和物理網(wǎng)絡(luò)中的交換機一樣,也需要這樣的一個軟件實現(xiàn)的設(shè)備。它需要有很多個虛擬端口,能把更多的虛擬網(wǎng)卡連接在一起,通過自己的轉(zhuǎn)發(fā)功能讓這些虛擬網(wǎng)卡之間可以通信。在Linux下這個軟件實現(xiàn)交換機的技術(shù)就叫做bridge(再強調(diào)下,這是純軟件實現(xiàn)的),也叫虛擬網(wǎng)橋。4.bridge模式
任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1系統(tǒng)上安裝docker后,默認(rèn)會生產(chǎn)docker0這個虛擬網(wǎng)橋,可以通過ipa來查看,ip為172.17.0.1,這個虛擬網(wǎng)橋是與主機物理網(wǎng)絡(luò)接口eth0,進(jìn)行橋接的,Vethxxx就是容器對于物理主機eth0具體的接口的,進(jìn)行網(wǎng)絡(luò)連通的。在啟動容器后,可以通過ipa進(jìn)行查看。4.bridge模式
bridge模式會為每一個容器分配網(wǎng)絡(luò)命名空間,并設(shè)置IP地址等信息。當(dāng)Docker進(jìn)程啟動時,會在主機上創(chuàng)建一個名為docker0的虛擬網(wǎng)橋,此主機上啟動的Docker容器會連接到這個虛擬網(wǎng)橋上。虛擬網(wǎng)橋的工作方式和物理交換機類似,這樣主機上的所有容器就通過交換機連在了一個二層網(wǎng)絡(luò)中。容器通過docker0網(wǎng)橋和IP表的NAT配置與宿主機通信。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.14.bridge模式在bridge模式下,Docker容器的通信方式分為容器與宿主機通信、容器與外部網(wǎng)絡(luò)通信兩種。(1)容器與宿主機通信。DockerDaemon先將veth0附加到docker0網(wǎng)橋上,保證宿主機的數(shù)據(jù)能夠發(fā)往veth0再將veth1添加到Docker容器所屬的網(wǎng)絡(luò)命名空間中,保證宿主機的網(wǎng)絡(luò)報文發(fā)往veth0時可以被veth1收到。(2)容器與外部網(wǎng)絡(luò)通信。如果需要訪問外部網(wǎng)絡(luò),則需要采用NAT功能,即使用NATP方式,并需要開地系統(tǒng)的轉(zhuǎn)發(fā)支持功能,底層依賴于ip_forward技術(shù)。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.14.bridge模式默認(rèn)情況下,容器可以訪問外部網(wǎng)絡(luò)。使用bridge模式(默認(rèn)橋接網(wǎng)絡(luò))的容器通過NAT方式實現(xiàn)外部訪問,具體通過iptables(Linux的包過濾防火墻)的源地址偽裝操作實現(xiàn)。在Docker主機上這種NAT轉(zhuǎn)換過程,如圖所示。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1容器訪問外部4.bridge模式默認(rèn)情況下,創(chuàng)建的容器不會將其任何端口對外發(fā)布,從容器外部是無法訪問容器內(nèi)部的網(wǎng)絡(luò)應(yīng)用程序和服務(wù)的。從外部訪問容器內(nèi)的應(yīng)用程序必須要有明確的授權(quán),這是通過內(nèi)部端口映射來實現(xiàn)的。要讓容器能夠被外部網(wǎng)絡(luò)(Docker主機外部)或者那些未連接到該容器的網(wǎng)絡(luò)上的Docker主機訪問,就要將容器的一個端口映射到Docker主機上的一個端口,允許從外部網(wǎng)絡(luò)通過該端口訪問容器。這種端口映射也是一種NAT實現(xiàn),即目標(biāo)地址轉(zhuǎn)換(DestinationNAT,DNAT),如圖所示。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.14.bridge模式創(chuàng)建容器時,可以通過P或p參數(shù)來指定帶口映射,使外部網(wǎng)絡(luò)訪問容器內(nèi)的網(wǎng)絡(luò)服務(wù)。①-p:該參數(shù)指定宿主機與容器的端口關(guān)關(guān)系,冒號左邊是宿主機的端口,右邊映射到容器中的端口。②-P:該參數(shù)會分配鏡像中所有會使用的端口,并映射到主機上的隨機端口。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.1任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.bridge模式使用-p選項發(fā)布特點端口5.自定義網(wǎng)絡(luò)模式在Docker中,可以使用dockernetworkcreate命令來創(chuàng)建自定義網(wǎng)絡(luò)。例如:#dockernetworkcreate--driver=bridge--subnet=192.168.1.0/24--gateway=192.168.1.1my_custom_network這條命令創(chuàng)建了一個名為my_custom_network的網(wǎng)絡(luò),其中--driver=bridge指定了網(wǎng)絡(luò)類型為橋接,--subnet和--gateway分別指定了子網(wǎng)和網(wǎng)關(guān)。任務(wù)4.1Docker網(wǎng)絡(luò)管理相關(guān)知識4.15.自定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年昆山登云科技職業(yè)學(xué)院單招職業(yè)傾向性考試題庫含答案詳解
- 2026年西安電力機械制造公司機電學(xué)院單招職業(yè)傾向性測試題庫附答案詳解
- 2026年河南藝術(shù)職業(yè)學(xué)院單招職業(yè)技能考試題庫及參考答案詳解一套
- 2026年黑龍江省哈爾濱市單招職業(yè)傾向性考試題庫及完整答案詳解1套
- 2026年湖北城市建設(shè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫及參考答案詳解
- 2026年貴州電子商務(wù)職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫含答案詳解
- 浙江郵政面試題及答案
- 2025年五家渠市北海街消防救援站政府專職消防員第四季度第二批招錄8人備考題庫及完整答案詳解一套
- 2025年西安交通大學(xué)附屬小學(xué)招聘備考題庫及一套參考答案詳解
- 2025年西安市高新一中初級中學(xué)招聘備考題庫及答案詳解1套
- SMETA員工公平職業(yè)發(fā)展管理程序-SEDEX驗廠專用文件(可編輯)
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院公開招聘輔導(dǎo)員筆試題含答案
- 水泵購買合同(標(biāo)準(zhǔn)版)
- ICU獲得性衰弱課件
- 數(shù)字智慧方案5912丨智慧軍營建設(shè)方案
- 下巴整形課件
- (2025年)安徽省蚌埠市輔警協(xié)警筆試筆試測試卷(含答案)
- 2025年山西省教師職稱考試(信息技術(shù))歷年參考題庫含答案詳解(5套)
- 國家開放大學(xué)法律事務(wù)??啤睹袷略V訟法學(xué)》期末紙質(zhì)考試總題庫2025珍藏版
- 2025秋季人教版新教材八年級英語上冊Unit1-8語法填空(附答案)
- DB45∕T 2954-2024 農(nóng)田建設(shè)項目概預(yù)算定額及其編制規(guī)程
評論
0/150
提交評論