Docker之自定義網絡實現

1、自定義網絡實現容器互聯

四類網絡模式,使用docker network ls查看docker網絡模式

Docker網絡模式 配置 說明
host模式 –net=host 容器和宿主機共享Network namespace。
container模式 –net=container:NAME_or_ID 容器和另外一個容器共享Network namespace。 kubernetes中的pod就是多個容器共享一個Network namespace。
none模式 –net=none 容器有獨立的Network namespace,但並沒有對其進行任何網絡設置,如分配veth pair 和網橋連接,配置IP等。
bridge模式 –net=bridge 橋接模式(默認為該模式)

–net=bridge 這個是默認值,連接到默認的網橋。

–net=host 告訴 Docker 不要將容器網絡放到隔離的名字空間中,即不要容器化容器內的網絡。此時容器使用本地主機的網絡,它擁有完全的本地主機接口訪問權限。容器進程可以跟主機其它 root 進程一樣可以打開低范圍的端口,可以訪問本地網絡服務比如 D-bus,還可以讓容器做一些影響整個主機系統的事情,比如重啟主機。因此使用這個選項的時候要非常小心。如果進一步的使用 –privileged=true,容器會被允許直接配置主機的網絡堆棧。

–net=container:NAME_or_ID 讓 Docker 將新建容器的進程放到一個已存在容器的網絡棧中,新容器進程有自己的文件系統、進程列表和資源限制,但會和已存在的容器共享 IP 地址和端口等網絡資源,兩者進程可以直接通過 lo 環回接口通信。

–net=none 讓 Docker 將新容器放到隔離的網絡棧中,但是不進行網絡配置。之後,用戶可以自己進行配置。

自定義網絡

# --driver bridge 橋接模式
# --subnet 192.168.0.0/16 子網絡網段
# --gateway 192.168.0.1 網關
# mynet 網絡名
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

在這裡插入圖片描述

查看自定義的網絡信息:

docker network inspect mynet

在這裡插入圖片描述

在自定義的網路中創建容器

docker run -d -P --name tomcat01-net-01 --net mynet tomcat
docker run -d -P --name tomcat01-net-02 --net mynet tomcat

在這裡插入圖片描述

再次查看自定義的網絡信息:發現新創建的兩個容器添加進網絡中瞭。

在這裡插入圖片描述

使用容器名互相進行ping測試

tomcat01-net-01 ping tomcat01-net-02:

在這裡插入圖片描述

tomcat01-net-02ping tomcat01-net-01:

在這裡插入圖片描述

現在不使用 –link 容器間也可以互相 ping 通瞭,容器間可以互相通信。

2、網絡連通

需求分析圖

在這裡插入圖片描述

創建tomcat01和tomcat02兩個容器:

docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat02 tomcat

在這裡插入圖片描述

很明顯,直接ping通是不可能的,需要先把tomcat01容器和mynet網絡連通。

docker network connect

docker network connect 命令是用於將 docker 容器連接到某個網絡中,可以使用容器名或者容器ID。

用法:

docker network connect [OPTIONS] NETWORK CONTAINER

把tomcat01容器連接到mynet網絡上:

docker network connect mynet tomcat01

查看mynet的網絡信息:docker inspect mynet

在這裡插入圖片描述

tomcat01已經連接到mynet網絡上,像tomcat01-net-tomcat01和tomcat01-net-tomcat02一樣。

此時,tomcat01已經和mynet網絡中的兩個容器連接起來,因為這三個容器處於同一網絡中,當然可以互相通信:

在這裡插入圖片描述

一個容器兩個網絡:

查看tomcat01的元數據:docker inspect tomcat01

在這裡插入圖片描述

tomcat01連接到自定義的mynet網絡後,就有兩個網絡瞭。

到此這篇關於Docker之自定義網絡實現的文章就介紹到這瞭,更多相關Docker網絡內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: