(转)Docker - 创建 Docker overlay network (containers 通信)

原文链接: 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 的通信 :)

 

posted @   TonyZhang24  阅读(1061)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示