c4rt1y

Docker容器跨主机之网桥实现

0x01 环境介绍

#一共2台服务器
master.com 10.10.10.20
node01.com 10.10.10.30

#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

#两种方法设置host(每台对应每台的host地址)
echo "master.com" > /etc/hostname
hostname master.com

#下载第三方依赖环境包
yum -y install epel-release

#设置host
cat >>/etc/hosts <<EOF 
10.10.10.20 master.com 
10.10.10.30 node01.com
EOF	

#关闭selinux,需要重启
sed -i 's:SELINUX=enforcing:SELINUX=disabled:g' /etc/selinux/config

#临时关闭seLinux
setenforce 0

#docker安装
yum -y install docker

#重启
reboot

0x02 网桥

#方案:在master存在192.168.2.1段,node01上存在192.168.1.1段,可连接
##master
#下载网络管理软件
yum install net-tools -y
#网桥工具
yum install bridge-utils -y
#创建网卡
brctl addbr br0
#设置网卡
ifconfig br0 192.168.1.1 netmask 255.255.255.0

#修改docker配置,连接网卡
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --registry-mirror=https://docker.mirrors.ustc.edu.cn  --selinux-enabled=true  --selinux-enabled=true -b=br0

#设置路由
route add -net 192.168.0.0/16 gw 10.10.10.30

#重启docker
systemctl daemon-reload && 	systemctl restart docker.service 


##node01
#下载网络管理软件
yum install net-tools -y
#网桥工具
yum install bridge-utils -y
#创建网卡
brctl addbr br0
#设置网卡
ifconfig br0 192.168.2.1 netmask 255.255.255.0

#修改docker配置,连接网卡
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --registry-mirror=https://docker.mirrors.ustc.edu.cn  --selinux-enabled=true  --selinux-enabled=true -b=br0

#设置路由
route add -net 192.168.0.0/16 gw 10.10.10.20

#重启docker
systemctl daemon-reload && 	systemctl restart docker.service 


##master
#测试,是否ping通
ping 192.168.2.1


##node01
#测试,是否ping通
ping 192.168.1.1

0x03 网桥的缺陷

优点:
	简单配置,不依赖第三方软件
缺点
	与主机统一网段,需要小心划分IP
	需要网段控制权,在生产环境不易实现
	不易管理
	兼容性不佳

0x04 资料来源

http://www.cnblogs.com/dopeter/p/4942606.html
《Docker进阶与实战.华为Docker实践小组》
《Docker 容器与容器云(第2版)》
GoTop