(转)Docker

原文链接: http://www.cnblogs.com/AlanWalkOn/p/6101875.html

---

创建基于Key-Value的Docker overlay network。 这样运行在多个nodes上的container就可以通过内部网络进行通信访问了。

安装环境centOS 7.2,Docker:1.12

1. 两台测试机器(172.100.1.17 and 172.100.1.12)必须是唯一的且互相可以解析。

2. 在(172.100.1.17)下载progrim/consul 镜像

3.修改docker daemon 配置信息。创建.conf文件在/etc/systemd/system/docker.service.d。注意网卡名字ifconfig确认下本机IP。

[Service - 17]
ExecStart=/usr/bin/dockerd --cluster-store consul://172.100.1.17:8500 --cluster-advertise 172.100.1.17:2376

[Service - 12]
ExecStart=/usr/bin/dockerd --cluster-store consul://172.100.1.17:8500 --cluster-advertise 172.100.1.12:2376
 

--cluster-store consul -> 指向获取 key-value 的机器

--cluster-advertise -> 本机地址,并注意监听端口:2376

4. Flush Changes

$ sudo systemctl daemon-reload

5.重启Docker Daemon

$ sudo systemctl restart docker.service

注意:两台机器都要重新启动host

6. 启动 consul 

docker run -d --restart="always"  -p "8500:8500"  -h "consul"  progrium/consul -server -bootstrap

7. 运行Docker ps 确保consul正常运行

$ docker ps
 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                            NAMES
4d51392253b3        progrium/consul     "/bin/start -server -"   25 minutes ago      Up 25 minutes       53/tcp, 53/udp, 8300-8302/tcp, 0.0.0.0:8500->8500/tcp, 8400/tcp, 8301-8302/udp   admiring_panini

8. 创建overlay network. 注意subnet地址避免与hosts冲突。

 $ docker network create  --driver overlay --subnet 10.0.9.0/24 my-multi-host-network

9. 查看overlay network是否存在

docker network ls

10. 在 host 17 (172.100.1.17)运行container使用overlay network

docker run -d --name mybusybox17 --net my-multi-host-network mybusybox

到此基于key-value的overlay network就创建好了。

11. 在另外一台机器上 host 12(172.100.1.12)运行container

docker run -d --name mybusybox12 --net my-multi-host-network mybusybox

   

12. 进入 container (mybusybox12) 查看 另一个host 17上的 container (mybusybox17)

 

13.  进入 container (mybusybox17) 查看 另一个host上的 container (mybusybox12)

到这里,我们就完成了通过overlay模式的网络来联通位于不同 Docker Host 之内的 containers 的通信 :)

原文地址:https://www.cnblogs.com/atuotuo/p/6278394.html