创建Docker overlay network

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

安装环境Ubuntu16.04,Docker:1.12

1. 集群中的hosts name必须是唯一的且互相可以解析。

2. 安装Distributed Store.Docker支持Consul,Etcd,Zookeeper 。 这里选择安装Consul。

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

3. 运行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

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

[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd://  --cluster-store consul://consul-host-ip:8500 --cluster-advertise eth0:2376

5. Flush Changes

$ sudo systemctl daemon-reload

6.重启Docker Daemon

$ sudo systemctl restart docker

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

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

8. 查看overlay network是否存在

docker network ls

9. 运行container使用overlay network

docker run -d --name web --net my-multi-host-network nginx

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

 

posted on 2016-11-25 15:46  AlanNiu  阅读(653)  评论(0编辑  收藏  举报