Docker之自定義網路實現

2022-09-20 16:09:08 字數 2305 閱讀 6188

目錄

四類網路模式,使用docker network www.cppcns.comls檢視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 bridgedbytjvwwcb --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-newww.cppcns.comt-01 ping tomcat01-net-02:

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

現在不使用 --link 容器間也可以互相 ping 通了,容器間可以互相通訊。

需求分析圖

建立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 inspe程式設計客棧ct mynet

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

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

乙個容器兩個網路:

檢視tomcat01的元資料:docker inspect tomcat01

tomcat01連線到自定義的mynet網路後,就有兩個網路了。

docker自定義網路實現部署zabbix

在啟動docker後 docker pull mysql 5.7 docker pull zabbix zabbix agent latest docker pull zabbix zabbix server mysql latest docker pull zabbix zabbix web ng...

Docker 內自定義網路

link 互聯例如 有1個映象 centos 我希望,通過建立乙個容器centos02能聯通乙個已經建立好的容器centos01,如下 root localhost docker run it p name centos02 link centos01 centos bin bash root lo...

docker學習(十) 自定義網路

網路模式 檢視幫助文件docker network help 我們使用這個命令來建立一下網路 先把容器都清楚保證環境的乾淨 先測試下 建立乙個橋接網路的tomcat01 其實這個命令和不使用是一樣的,因為docker給我們建立容器的時候這個引數是預設的即 docker run d p name to...