docker通过网桥跨主机连接

docker通过网桥跨主机连接_第1张图片

使用网桥实现跨主机容器连接:在同一个docker的主机中docker容器使用默认的docker0网桥来进行网络的通信,如果将连接容器的网桥也桥接到docker主机的网卡上,并且将网桥分配的ip地址与docker主机分配的ip地址设置为同一ip段,就相当于将容器与docker主机的网咯连接在了一起,就实现了跨主机的容器间的通信。

在不同的docker主机中分别创建网桥,并使用这个网桥来连接docker主机的物理网卡和docker容器,就意味着将不同docker主机中的容器都分配在了同一网段下

环境准备:2ubuntu虚拟机,2个虚拟机中分别安装网桥管理工具(apt-get install bridge-utils,2台机器的ip地址分别是10.211.55.3,10.211.55.5

在虚拟机中配置网桥的连接:修改网络配置文件/etc/network/interfaces来实现网桥的配置和添加。这些命令指定了要建立网桥的名称,ip分配的方式,子网掩码,默认的网关,以及指明了将本地的物理网卡连接到新建的网桥上:

auto br0

iface br0 inet static

address 10.211.55.3

netmask 255.255.255.0

gateway 10.211.55.1

bridge_ports eth0

 

docker端需要为docker的守护进程指定2个启动配置选项:

修改/etc/default/docker文件(这是docker守护进程启动配置文件)

-b指定自定义网桥的名字:-b=br0

--fixed-cidr指定的是自定义网桥为容器分配ip地址时使用的ip段,为了避免在2台主机中的容器的ip地址产生冲突,

HOST1 : 10.211.54.64/26

地址范围:10.211.55.65  ~ 10.211.55.126

HOST2 : 10.211.55.128/26

地址范围:10.211.55.129 ~ 10.211.55.190

 

两台主机的具体配置如下:

第一台主机:

$sudo apt-get install bridge-utils

$sudo vim /etc/network/interfaces

auto br0

iface br0 inet static

address 10.211.55.3

netmask 255.255.255.0

gateway 10.211.55.1

bridge_ports enp0s25(本机网卡名)

 

$sudo vim /etc/default/docker

DOCKER_OPTS=”-b=br0  --fixed-cidr=10.211.54.64/26

 

$sudo reboot  :  重启系统

 

第二台主机:

$sudo apt-get install bridge-utils

$sudo vim /etc/network/interfaces

auto br0

iface br0 inet static

address 10.211.55.5

netmask 255.255.255.0

gateway 10.211.55.1

bridge_ports eth0

 

$sudo vim /etc/default/docker

DOCKER_OPTS=“-b=br0  --fixed-cidr=10.211.55.128/26”

 

$sudo reboot  :  重启系统

你可能感兴趣的:(ROS,linux)