- CKA/CKAD應試教程:從Docker到Kubernetes完全攻略
- 段超飛編著
- 714字
- 2025-03-17 18:51:32
1.9 Docker網絡
【必知必會】了解并創建Docker網絡。
前面講創建MySQL容器時,進行測試時連接的IP是172.17.0.2,那么容器的IP是怎么分配的呢?
1.9.1 了解Docker網絡
要先了解Docker里的網絡到底是怎么回事,如圖1-20所示。

圖1-20 Docker網絡的結構
在物理機里創建一個Docker網絡,本質上就是為Docker容器創建一個交換機,然后給這個交換機指定一個網段。創建好網絡之后,會在物理機上產生一個虛擬網卡,這個網卡的IP地址是這個Docker網段的第一個IP地址。
比如安裝好Docker之后,會自動創建一個名為bridge的網絡,可以把它想象成一個交換機,它的網段是172.17.0.0/16,物理機里會生成一張網卡docker0,IP是172.17.0.1。在創建容器時,容器默認就是連接到此交換機的,所以容器里的IP也是172.17.0.0/16里的一個IP。
如果想再創建一個網絡mynet,相當于為容器又創建了一個交換機,這個網段如果指定為10.0.0.0/24,則此交換機在物理機上所產生的虛擬網卡的IP是此網段的第一個IP,即10.0.0.1。連接到此交換機上的容器的IP也是10.0.0.0/24里的一個IP。
第1步 查看當前Docker網絡。

第2步 查看名為bridge的網絡的信息。

上述命令在vms101上用nerdctl執行,只要把關鍵字docker換成nerdctl即可。
1.9.2 創建Docker網絡
創建網絡的語法如下。

記憶方法如下。
(1)執行man -k docker -->找到docker-network-create。
(2)man docker-network-create里面有很多例子。
對于nerdctl來說,創建網絡的語法如下。

第1步 創建名稱為mynet的網絡,網段為10.0.0.0/24。


這里創建了一個名稱為mynet、類型為bridge的網絡,網段為10.0.0.0/24,以后使用該網絡的容器獲取的IP就在10.0.0.0/24內。
查看該網絡的信息。

上述命令在vms101上用nerdctl執行,只要把關鍵字docker換成nerdctl即可。
如果創建某容器想使用mynet,則需要使用--net=mynet選項來指定。
第2步 創建名稱為c1的容器,連接到剛創建的網絡mynet里。

在SSH客戶端另外的標簽里查詢c1的IP信息。

可以看到,獲取的IP是10.0.0.2,這個IP就屬于mynet網段。
退出c1容器,此容器會自動刪除。
上述命令在vms101上用nerdctl執行,只要把關鍵字docker換成nerdctl即可。
- 微服務設計原理與架構
- AIRAndroid應用開發實戰
- 零基礎學MQL:基于EA的自動化交易編程
- Python:Master the Art of Design Patterns
- Learning DHTMLX Suite UI
- 全棧自動化測試實戰:基于TestNG、HttpClient、Selenium和Appium
- Python算法指南:程序員經典算法分析與實現
- 實戰Java高并發程序設計(第2版)
- SQL Server 入門很輕松(微課超值版)
- CryENGINE Game Programming with C++,C#,and Lua
- 打造流暢的Android App
- 深入實踐C++模板編程
- Spring MVC Cookbook
- Neo4j Graph Data Modeling
- WCF 4.5 Multi-Layer Services Development with Entity Framework(Third Edition)