要使用docker 原生的overlay,要满足任意的2个条件: 1,docker 运行在swarm 模式 2,使用键值存储docker 主机集群

这里使用consul 键值存储来部署 节点1/键值存储(Server):192.168.1.198 节点2(Client):192.168.1.199 1,下载consul二进制包 进行部署(下载到server节点)

wget https://releases.hashicorp.com/consul/0.9.2/consul_0.9.2_linux_amd64.zip

2,解压缩添加执行命令

unzip consul_0.9.2_linux_amd64.zip
mv consul /usr/bin/consul && chmod +x /usr/bin/consul

3,指定后台运行,并将启动信息重定向到日志里(指定类型为server 客户端信息绑定信息) -ui 可以通过网页访问看到consul的基本情况,-bind 监听的地址

nohup consul agent -server -bootstrap -ui -data-dir /var/lib/consul -client=192.168.1.198 -bind=192.168.1.198
&>/var/log/consul.log &
cat /var/log/consul.log \\查看日志 是否启动成功

4,server节点配置docker 守护进程consul(修改docker启动文件)consul://server地址

vi /lib/systemd/system/docker.service
[Service]
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store consul:// 192.168.1.198:8500
--cluster-advertise 192.168.1.198:2375(通告信息)

重新加载docker配置文件使更改生效

systemctl daemon-reload 
service docker restart

5,client节点配置

vi /lib/systemd/system/docker.service
[Service]
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 --cluster-store consul:// 192.168.1.198:8500
--cluster-advertise 192.168.1.199:2375

重新加载使配置生效

systemctl daemon-reload 
service docker restart

6,创建overlay网络(任意一台 最好是server 端,他会同步到其他node)

docker network create -d overlay multi_host(网络名)

7测试互通

docker run -itd --net=multi_host busybox (--net 加入overlay 网络)
ping ....