




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目8構建Docker容器虛擬化網絡《云網絡技術項目教程》目錄/Contents(1)(2)部署單宿主機Docker容器網絡部署跨宿主機Docker容器網絡項目描述通過部署OpenStack云平臺實現了在服務器上快速部署虛擬機,提升了服務器硬件資源的利用率。為了簡化應用程序的打包、交付和部署過程,提高了開發人員和運維人員的工作效率,公司決定使用Docker容器技術部署各類業務系統,項目經理要求王亮安裝Docker容器引擎,部署單宿主機Docker容器網絡和跨宿主機的Docker容器網絡。
項目8任務思維導圖部署單宿主機Docker容器網絡【知識目標】(1)掌握Docker鏡像與容器的關系。(2)掌握單宿主機Docker容器的內外網互聯方式。(1)能夠安裝Docker容器引擎。(2)能夠部署單宿主機Docker容器網絡。【技能目標】網絡拓撲必備知識1.Docker容器引擎
Docker是目前最流行的容器引擎之一,它是一個開源的軟件平臺,用于快速構建、打包和部署應用程序到容器中,它提供了一種輕量級的虛擬化技術,使開發運維人員能夠將應用程序及其所有依賴項打包到一個獨立的容器中,并在任何環境中以相同的方式運行,Docker容器引擎具備以下特點。(1)鏡像管理Docker使用鏡像來打包應用程序及其依賴項,鏡像是一個只讀的模板,包含運行應用程序所需的所有文件和配置。開發人員可以基于現有的鏡像構建自定義的鏡像,實現應用程序的快速部署。(2)容器管理Docker可以管理容器的生命周期,包括創建、啟動、停止、刪除等操作。開發人員可以通過Docker命令行工具或DockerAPI來管理容器,實現對應用程序的靈活控制。(3)跨平臺支持Docker容器可以在任何支持Docker引擎的平臺上運行,無論是物理服務器、虛擬機還是公有云服務,確保了應用程序在不同環境中的一致性。(4)網絡管理Docker提供了靈活的網絡配置選項,允許容器之間進行通信,也可以通過端口映射將容器暴露給外部網絡。(5)存儲管理Docker提供了多種存儲驅動程序,可以讓容器與數據卷和存儲卷進行交互,實現數據的持久化和共享。(6)安全性Docker提供了多層次的安全機制,包括命名空間隔離、控制組隔離、資源限制、容器簽名等,保障容器環境的安全性。必備知識必備知識2.Docker鏡像和容器
鏡像和容器是Docker容器化平臺中的兩個核心概念,它們在容器化應用程序的構建、運行和部署過程中扮演著重要的角色。(1)鏡像(Image)鏡像是一個只讀的模板,它包含了運行容器所需的所有文件系統內容、軟件環境、庫和設置。可以將鏡像看作是一個應用程序的打包和分發形式。Docker鏡像由多個層(Layers)組成,每一層都包含了文件系統的一部分或一組操作,這些層組合在一起形成了完整的容器運行環境,鏡像是用于創建容器的基礎,通過鏡像可以創建出一個或多個具體的運行實例,即容器。可以從Docker倉庫中下載鏡像,也可以編寫Dockerfile來定義鏡像,然后使用Docker鏡像來創建和運行容器。容器可根據鏡像的定義快速啟動和停止,并且可以在不同的環境中進行部署和移植。(2)容器(Container)容器是基于鏡像創建的運行實例,它包含了應用程序及其依賴的所有內容,如文件、環境變量、系統庫等,Docker容器提供了一個隔離的運行環境,使得應用程序可以在其中獨立運行,不受外部環境的影響,每個容器都是相互隔離的,擁有自己的文件系統、進程空間、網絡接口等資源。鏡像是容器運行的基礎,它提供了應用程序運行所需的所有環境和依賴;而容器則是鏡像的運行實例,它提供了一個隔離的運行環境,使得應用程序可以在其中獨立運行。這種基于鏡像和容器的容器化技術,為開發者提供了一種便捷、高效的應用程序部署和管理方式。必備知識安裝基礎環境3.Docker容器網絡模式
(1)bridge網絡模式bridge網橋模式是Docker容器默認網絡模式,容器使用獨立網絡名稱空間,在默認模式下,容器連接到docker0虛擬網橋。通過docker0網橋以及Iptables規則與宿主機和外部主機通信。(2)host主機網絡模式在
Docker中,使用主機模式網絡意味著容器與宿主機共享網絡命名空間,容器將直接使用宿主機的網絡棧,而不再進行網絡地址轉換。這種模式下,容器將綁定到宿主機的網絡接口上,使得容器可以直接訪問宿主機上的所有網絡服務,同時也可以讓外部網絡直接訪問到容器內的服務。(3)container容器網絡模式container容器網絡模式指定新創建的容器和已經存在的一個容器共享一個網絡名稱空間,而不是和宿主機共享,新創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定的容器共享IP、端口范圍等,兩個容器除了網絡方面,其他的如文件系統、進程列表等還是隔離的,兩個容器的進程可以通過回環網卡設備通信,container容器網絡模式適合兩個容器頻繁通信的場景。(4)none網絡模式none網絡模式將容器放置在它自己的網絡棧中,它不對網絡進行任何配置,該模式關閉了容器的網絡功能,通常使用在容器并不需要網絡場景下,如只需要寫磁盤卷的批處理任務。安裝Docker容器引擎1.配置服務器網絡環境
首先使用CentOS8.ova模板機創建一臺名稱為node1的服務器,服務器網卡及IP地址配置如表所示。服務器名稱網卡名稱連接到網絡網絡模式IP地址網關node1ens160VMnet1僅主機模式
ens192VMnet8NAT網絡模式0服務器ens160網卡作為SecureCRT登錄網卡,ens192用于訪問外部網絡,安裝Docker容器引擎。配置完成后,查看node1服務器的網卡和IP地址配置。安裝Docker容器引擎2.配置yum源
下載Docker社區版的yum源到本地,如下所示。[root@localhost~]#curl/linux/centos/docker-ce.repo-o/etc/yum.repos.d/docker-ce.repo3.安裝啟動Docker
需要安裝Docker引擎和命令行工具,如下所示。[root@localhost~]#yuminstalldocker-cedocker-ce-cli-y安裝完成后,啟動Docker引擎并設置為開機自啟,如下所示。[root@localhost~]#systemctlstartdocker&&systemctlenabledocker查看Docker引擎版本,如下所示。[root@localhost~]#docker-v結果如下所示。Dockerversion25.0.3,build4debf41安裝Docker容器引擎(2)配置免密碼登錄由于在controller服務器上部署組件時,需要登錄本機和compute服務器,為避免每次輸入密碼,需要配置免密碼登錄。首先在controller上生成公鑰和私鑰,命令如下。[root@controller~]#ssh-keygen在出現提示時,直接輸入回車即可生成公鑰和私鑰,然后將公鑰拷貝給controller服務器和compute服務器。如下所示。[root@controller~]#ssh-copy-idcontroller[root@controller~]#ssh-copy-idcompute在出現Areyousureyouwanttocontinueconnecting(yes/no/[fingerprint])?提示時,輸入YES,然后輸入controller或者compute的密碼,這里設置的是1,即可實現將公鑰拷貝到本機和compute服務器上,實現免密碼登錄安裝Docker容器引擎Docker容器的內外網互聯1.Docker容器間互聯
(1)docker0網橋安裝完docker引擎后,會生成一個docker0的網橋,查看node1服務器的網卡及IP地址,如圖所示,從圖中可以發現,docker0已經安裝到node1服務器上了。當Docker啟動時,會在主機上創建一個名為docker0的虛擬網橋,創建的Docker容器連接到這個虛擬網橋上,運行的多個容器通過網橋連接在一個二層網絡中。Docker會從定義的私有網絡中,選擇一個和宿主機不同IP地址分配給docker0,連接到docker0的容器啟動時將獲取到與docker0同一網絡的IP地址。(2)創建2個容器①下載alpine鏡像alpine鏡像容量比較小,運行鏡像成為容器后,容器內支持多種網絡命令,如下所示。[root@controller~]#dockerpullalpine使用dockerpull命令可以從默認的Docker倉庫下載鏡像,這里沒有加alpine鏡像的版本,采用的是默認版本latest。②查看鏡像下載鏡像后,可以使用dockerimages查看下載到本地的鏡像,結果如圖8-5所示Docker容器的內外網互聯③創建容器test1基于alpine鏡像創建容器test1,如下所示。[root@localhost~]#dockerrun-itd--name=test1alpine/bin/sh以上命令基于alpine鏡像創建了test1測試容器,使用-it/bin/sh是開啟一個終端shell進程,保持和容器的交互,保證容器一直在運行狀態,-d是在后臺運行容器。④創建容器test2基于alpine鏡像創建容器test2,如下所示。[root@localhost~]#dockerrun-itd--name=test2alpine/bin/sh與test1類似,以上命令基于alpine鏡像創建了test2測試容器。Docker容器的內外網互聯(3)測試容器連通性①查看test1容器的IP地址首先進入到test1容器,如下所示。[root@localhost~]#dockerexec-ittest1/bin/sh以上命令進入到容器test1中,開啟了shell為/bin/sh,查看IP地址,test1容器的IP地址為,如圖所示。Docker容器的內外網互聯②查看test2容器的IP地址使用exit退出test1容器,然后進入到test2容器,如下所示。[root@localhost~]#dockerexec-ittest2/bin/sh以上命令進入到容器test1中,開啟了shell為/bin/sh,查看IP地址,test2容器的IP地址為,結果如圖8-7所示。Docker容器的內外網互聯③在test2容器中測試與test1容器的連通性在test2容器中測試與test1容器的連通性,結果如圖所示。從結果中發現,test2容器和test1是能夠相互訪問的。Docker容器的內外網互聯④查看網橋信息在node1上,查看Docker0網橋信息,如圖所示。從圖中發現,Docker0網橋連接著兩塊veth虛擬網卡,兩塊網卡分別連接到test1和test2容器中。Docker容器的內外網互聯2.Docker容器訪問外部網絡
(1)測試容器訪問外部網絡主機進入test1容器,測試與外部網絡主機的連通性,結果如圖所示。Docker容器的內外網互聯(2)分析容器訪問外部主機網絡配置test1容器訪問外部網絡的原因有三個,一是在test1容器中設置了去往網橋docker0的IP地址網關,如圖所示。二是在容器宿主機node1服務器上,設置了默認網關是,通過ens192進行轉發,如圖所示。Docker容器的內外網互聯容器去往外部網絡的數據到達docker0后,就會轉發到ens192網卡上,三是node1上的iptables規則設置了源地址轉換,即將來自/16的數據轉換成出口網卡ens192的IP地址,如圖所示。Docker容器的內外網互聯3.外部主機訪問容器
(1)下載nginx鏡像首先下載一個nginx的鏡像,版本為1.8.1,如下所示。[root@localhost~]#dockerpullnginx:1.8.1(2)運行nginx鏡像基于nginx:1.8.1鏡像,在后臺運行nginx容器,將容器的80端口映射到宿主機node1的0的81端口上,也就是ens192網卡的81端口,如下所示。[root@localhost~]#dockerrun--name=nginx-d-p0:81:80nginx:1.8.1Docker容器的內外網互聯(3)外部訪問nginx服務在windows主機上,使用瀏覽器訪問地址0:81,結果如下所示。從結果中發現,已經可以在windows上訪問服務器node1上的nginx容器了。Docker容器的內外網互聯
(4)分析外部主機訪問容器的網絡配置首先進入nginx容器,查看IP地址為,如圖所示。然后查看node1上的iptables地址轉換規則。從結果中看出,服務器node1上配置了目的地址轉換規則,將訪問0的81端口流量發送到的80端口,實現了外部網絡主機訪問容器內的應用。Docker容器的內外網互聯部署跨宿主機Docker容器網絡【知識目標】(1)掌握Docker容器自定義網絡的特點。(2)掌握跨宿主機Docker容器互聯的常用技術。(1)能夠創建Docker自定義網絡。(2)能夠部署跨宿主機Docker容器網絡。【技能目標】網絡拓撲必備知識1.Docker容器自定義網絡
Docker容器自定義網絡是由Docker提供的一種功能,用于在容器之間創建一個虛擬的、隔離的網絡環境。通過創建自定義網絡,可以讓連接到同一網絡的容器之間進行通信,而與主機上的其他網絡和容器隔離開來。自定義網絡的主要特點包括以下4點。(1)隔離性自定義網絡提供了一種隔離的網絡環境,使得連接到同一網絡的容器可以相互通信,而與主機上的其他網絡隔離開來。這種隔離性能夠確保容器之間的通信不會干擾主機上的其他網絡或容器。(2)靈活性用戶可以根據自己的需求創建多個不同的自定義網絡,并將容器連接到這些網絡中。這使得可以根據應用程序的需求,將容器組織成不同的網絡拓撲結構,以實現更靈活的網絡架構。(3)IP地址管理Docker會為每個連接到自定義網絡的容器分配一個獨立的IP地址,使得容器可以通過IP地址進行通信。此外,Docker還提供了內置的DNS服務,使得容器可以使用其他容器的名稱進行解析,而無需使用IP地址。(4)多網絡連接一個容器可以連接到多個不同的自定義網絡,以便與不同網絡的容器進行通信。這種多網絡連接功能可以用于構建更復雜的網絡架構和應用場景。必備知識2.容器跨宿主機通信常用技術
(1)VXLAN網絡VXLAN是一種基于虛擬隧道技術的容器網絡解決方案,它可以在底層網絡上創建一個邏輯網絡,并為每個容器分配唯一IP地址。VXLAN網絡可以實現容器跨宿主機和跨數據中心的網絡通信,同時也支持網絡隔離和高級網絡策略。VXLAN的優點是具有較好的可擴展性和靈活性,可以適應不同規模和復雜度的網絡環境。(2)Macvlan網絡Macvlan是一種基于物理網卡的容器網絡解決方案,它可以將容器直接綁定到物理網卡上,并為每個容器分配一個唯一的MAC地址和IP地址。Macvlan網絡可以實現容器與宿主機之間的網絡隔離,同時也可以實現容器之間的網絡通信。Macvlan的優點是網絡性能高,且支持多播和廣播等高級網絡功能,適合需要高性能網絡的場景。但是,它也有一些限制,比如不能跨主機使用,且需要提前配置好物理網卡。必備知識(3)Calico網絡Calico是一個開源的容器網絡和網絡安全解決方案,它基于標準的IP協議棧來實現容器的網絡互聯。Calico使用BGP協議來路由容器之間的流量,可以實現跨宿主機的容器網絡通信。(4)Flannel網絡Flannel是一個輕量級的容器網絡解決方案,它基于VXLAN或UDP報文進行容器間通信。Flannel可以在多個Docker宿主機之間創建一個虛擬網絡,并為每個容器分配一個唯一的IP地址。(5)WeaveNet網絡WeaveNet是一種開源的容器網絡解決方案,并提供豐富的網絡策略和安全功能,可以實現容器跨宿主機訪問。必備知識創建Docker自定義網絡1.配置服務器網絡環境
首先使用CentOS8.ova模板機創建兩臺服務器,名稱為node1和node2,服務器網卡及IP地址配置如表所示。服務器名稱網卡名稱連接到網絡網絡模式IP地址網關node1ens160VMnet1僅主機模式
ens192VMnet8NAT網絡模式0Node2ens160VMnet1僅主機模式
ens192VMnet8NAT網絡模式0服務器ens160網卡作為SecureCRT登錄網卡,ens192用于訪問外部網絡,安裝Docker容器引擎,同時作為兩臺服務器上容器之間的互聯網卡,配置完成后,查看node1服務器的網卡和IP地址配置,如圖所示。查看node2服務器的網卡和IP地址配置,如圖所示。創建Docker自定義網絡2.安裝Docker容器鏡像
按照任務8-1安裝Docker容器引擎方法在服務器node1和node2上安裝Docker引擎,查看node1上的Docker容器版本,如圖所示。查看node2上的Docker容器版本,如圖所示。創建Docker自定義網絡3.創建自定義網絡
(1)在node1服務器上創建Docker容器自定義網絡創建名稱為mynet,子絡地址為/16的自定義網絡,如下所示。[root@node1~]#dockernetworkcreate--subnet=/16mynet創建完成后,查看Docker容器網絡,結果如圖所示(2)在node2服務器上創建Docker容器自定義網絡創建名稱為mynet,子絡地址為/16的自定義網絡,如下所示。[root@node2~]#dockernetworkcreate--subnet=/16mynet創建完成后,查看Docker容器網絡,結果如圖所示創建Docker自定義網絡部署Docker容器跨宿主機互聯網絡1.基于自定義網絡創建容器
(1)下載alpine鏡像使用alpine鏡像運行測試容器,在兩臺服務器上都下載鏡像,如下所示。[root@node1~]#dockerpullalpine[root@node2~]#dockerpullalpine(2)在node1上創建測試容器test1基于alpine鏡像和mynet自定義網絡創建容器test1,如下所示。[root@node1~]#dockerrun-itd--name=test1--ip--network=mynetalpine/bin/sh在node1上基于alpine鏡像和mynet自定義網絡創建了test1測試容器,指定了容器的IP地址為,使用-it/bin/sh是開啟一個終端shell進程,保持和容器的交互,保證容器一直在運行狀態,-d是在后臺運行容器。(3)在node2上創建測試容器test2基于alpine鏡像和mynet自定義網絡創建容器test2,如下所示。[root@node2~]#dockerrun-itd--name=test2--ip--network=mynetalpine/bin/sh在node2上基于alpine鏡像和mynet自定義網絡創建了test2測試容器,指定了容器的IP地址為,使用-it/bin/sh是開啟一個終端shell進程,保持和容器的交互,保證容器一直在運行狀態,-d是在后臺運行容器。部署Docker容器跨宿主機互聯網絡(4)查看node1和node2的網橋在node1上查看網橋及連接網卡,結果如圖所示。從結果中發現,node1增加了的網橋br-7e4e91eb5623,連接到了veth220e278網卡,新增加的網橋是由于創建了mynet自定義網絡,綁定的網卡連接到了容器test1。在node2上查看網橋及連接網卡,結果如圖所示。從結果中發現,node2增加了的網橋br-7a24cde993c6,連接到了veth931b54f網卡,新增加的網橋是由于創建了mynet
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具包裝組管理制度
- 家庭打麻將管理制度
- 應急值班點管理制度
- 弱電設備房管理制度
- 征收辦保密管理制度
- 微機室設備管理制度
- 心理放松室管理制度
- 快遞小袋子管理制度
- 急性肺栓塞管理制度
- 總工辦崗位管理制度
- 湖南省婁底市漣源市2023-2024學年六年級下學期期末數學試題
- 應征公民政治考核表(含各種附表)
- 2024年湖南省中考地理+生物試卷
- 【企業分拆上市問題探究文獻綜述5800字】
- 腫瘤隨訪登記工作以及管理
- 醫院新技術開展總結及整改措施
- 國家開放大學-法學專業-2023年秋季《法律文化》形成性考核作業答案
- 2022室外排水設施設計與施工-鋼筋混凝土化糞池22S702
- 人才培養方案論證會流程
- 高校師德師風專題培訓課件
- 【復習資料】10398現代漢語語法修辭研究(練習測試題庫及答案)
評論
0/150
提交評論