Docker網路管理

2022-07-25 11:57:14 字數 2206 閱讀 2123

網路管理是docker中重要的部分,由於需要構建集群,容器之間需要進行通訊,尤其是跨主機之間的容器間進行通訊。

docker有三種網路型別,bridge、host和none。

檢視docker的網路幫助

# 檢視network命令幫助

$>docker network --help

執行結果如下:

usage:  docker network command

manage networks

commands:

connect connect a container to a network

create create a network

disconnect disconnect a container from a network

inspect display detailed information on one or more networks

ls list networks

prune remove all unused networks

rm remove one or more networks

檢視網路列表

列表中driver是三種型別之一,name可以任意取。

$>docker network list
建立自己的網路,指定子網

$>docker network create --subnet 172.18.0.0/16 mynetwork
檢視建立的網路

$>docker network list
結果如下:

檢查指定網路

$>docker network inspect mynetwork
3.1 環境說明

本案例使用兩台虛擬機器,s101和s102,具體配置見**。

主機名稱

ip位址

閘道器s101

192.168.231.101

192.168.231.2

s102

192.168.231.102

192.168.231.2

3.2 目標

本案例要是實現兩台虛擬機器內的四個docker容器之間的網路訪問,具體網路拓撲如下:

主機docker容器1

docker容器2

s101(192.168.231.101)

192.168.231.10

192.168.231.11

s102(192.168.231.102)

192.168.231.20

192.168.231.21

3.3 操作

對兩台虛擬機器的乙太網卡均開啟為混雜模式

如果不開啟混雜模式,會導致macvlan無法訪問外網。使用命令如下:

# 設定乙太網卡開啟混雜模式

$>ip link set eth16777736 promisc on

檢視網絡卡狀態

$>ifconfig
在每台虛擬機器上執行如下命令,新增虛擬網絡卡

# s101執行 ,需要位於同一網段

$>docker network create -d macvlan --subnet=192.168.231.10/24 --gateway=192.168.231.2 -o parent=eno16777736 -o macvlan_mode=bridge eth0_1

# s102執行

$>docker network create -d macvlan --subnet=192.168.231.20/24 --gateway=192.168.231.2 -o parent=eno16777736 -o macvlan_mode=bridge eth0_1

分別在兩台虛擬機器上建立docker容器

測試容器之間是否能夠ping通

$>ping 192.168.231.11	# 10 ping 11

$>ping 192.168.231.20 # 10 ping 20

Docker 網路管理

容器建立時,會建立veth,與docker客戶端相連 新增虛擬網橋 sudo brctl addbr br0 sudo config br0 192.168.100.1 netmask 255.255.255.0 更改docker守護程序的啟動配置 etc default docker 中新增doc...

Docker 網路管理

實際開發中我們經常在部署應用時存在多個容器,那麼在單一主機中多個docker容器是如何通訊的假設現在有乙個應用需要部署,但是tomcat和mysql服務分開部署,這時候按照正常的思考就必須先部署mysql然後拿到mysql容器的ip之後才能部署tomcat容器 命令 檢視命令 docker netw...

docker 網路管理

docker 中的網路驅動模式 檢視網路 docker network ls 建立網路 docker network create 網路刪除 docker network rm 檢視網路詳細資訊 docker network inspect 使用網路 docker run network 網路連線與...