官术网_书友最值得收藏!

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即可。

主站蜘蛛池模板: 汝州市| 旅游| 思南县| 文昌市| 五家渠市| 中牟县| 汉中市| 皋兰县| 南川市| 宜兰县| 慈溪市| 淮北市| 盐城市| 海安县| 郯城县| 济南市| 东港市| 营口市| 阿克苏市| 神池县| 巧家县| 罗山县| 常熟市| 横山县| 西平县| 清徐县| 吉木乃县| 东港市| 秦安县| 平江县| 常宁市| 友谊县| 岳阳县| 富蕴县| 兴安县| 达拉特旗| 九龙坡区| 余江县| 尉犁县| 青田县| 东阿县|