docker 的跨主机访问
-
集群中主机连接到键值存储,Docker支持 Consul、Etcd和Zookeeper
-
集群中主机运行一个Docker守护进程
-
集群中主机必须具有唯一的主机名,因为键值存储使用主机名来标识集群成员
-
集群中linux主机内核版本在3.12+,支持VXLAN数据包处理,否则可能无法通行
1、wget https://releases.hashicorp.com/consul/0.9.2/consul_0.9.2_linux_386.zip
unzip consul_1.0.6_linux_amd64.zip
mv consul /usr/bin/ && chmod a+x /usr/bin/consul
nohup consul agent -server -bootstrap -ui -data-dir /data/docker/consul \
> -client=172.16.200.208 -bind=172.16.200.208 &> /var/log/consul.log &
2、所有机器上都要修改docker配置文件
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H
tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store consul://192.168.6.23:8500 --cluster-advertise 192.168.6.23:2375 (开启远程API访问)
另一台机器
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store consul://192.168.6.23:8500 --cluster-advertise 192.168.6.21:2375
重新加载配置并重启docker
systemctl daemon-reload && systemctl restart docker
3、创建overlay网络
docker network create -d overlay multi_host
查看docker网络
docker network ls