1、overlay环境准备
为支持容器跨主机通信,Docker 提供了 overlay driver,使用户可以创建基于 VxLAN 的 overlay 网络。VxLAN 可将二层数据封装到 UDP 进行传输,VxLAN 提供与 VLAN 相同的以太网二层服务,但是拥有更强的扩展性和灵活性。
Docerk overlay 网络需要一个 key-value 数据库用于保存网络状态信息,包括 Network、Endpoint、IP 等。Consul、Etcd 和 ZooKeeper 都是 Docker 支持的 key-vlaue 软件,我们这里使用 Consul。
在docker-machine (192.168.1.118)的基础上
1、docker-machine 配置
在docker-machine (192.168.1.118)上部署安装模块Consul。
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server –bootstrap
容器启动后,可以通过 http://192.168.1.118:8500 访问 Consul.
2、host上配置
接下来修改 host1 和 host2 的 docker daemon 的配置文件/etc/systemd/system/docker.service.d/10-machine.conf。
vim /etc/systemd/system/docker.service.d/10-machine.conf
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic --cluster-store=consul://192.168.1.118:8500 --cluster-advertise=ens33:2376
Environment=
--cluster-store
指定 consul 的地址。--cluster-advertise
告知 consul 自己的连接地址。
重启 docker daemon。
systemctl daemon-reload
systemctl restart docker.service