原文链接: 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。

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

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

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

4. Flush Changes

  1. $ sudo systemctl daemon-reload

5.重启Docker Daemon

  1. $ sudo systemctl restart docker.service

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

6. 启动 consul

  1. 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冲突。

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

9. 查看overlay network是否存在

  1. docker network ls

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

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

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

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

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

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

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

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

(转)Docker - 创建 Docker overlay network (containers 通信)的更多相关文章

  1. docker 创建docker用户组,应用用户加入用户组

    在Linux系统下使用docker,为了避免每次输入命令都需要sudo,可以把用户加入docker用户组 创建docker用户组 sudo groupadd docker 普通用户加入docker用户 ...

  2. Docker Network containers

    Network containers Estimated reading time: 5 minutes If you are working your way through the user gu ...

  3. Docker6之Network containers

    how to network your containers. Launch a container on the default network Docker includes support fo ...

  4. Docker - 运行 containers 使用在 swarm 模式下创建的 overlay 模式的 network

    前言 在Docker engine v1.12, 使用Swarm可以方便的创建overlay模式的网络,但是它只能被swarm下面的service所使用的,相对于container,这个网络是完全隔离 ...

  5. 记一次 Docker swarm - overlay network access error

    背景 之前使用Docker swam 在不同的服务器 (docker host) 上面创建了service,他们之间的container通过overlay的网络通信. 昨天由于公司网络维护,其中一台服 ...

  6. 【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别

    From the previous posts, I have analysed 4 different Docker multi-host network solutions - Calico, F ...

  7. docker - 由于docker swarm子网与host机器网络冲突导致的container通信问题的解决方案

    背景 近期,公司网络要迁移到新的网段,所以原来在服务器上面搭建的docker swarm需要重新构建... 拿到新的服务器地址看了一下,“10.xxx.xxx.xxx" ... 纳尼,这IP ...

  8. Docker 新网络 overlay 网络

    Overlay网络是指在不改变现有网络基础设施的前提下,通过某种约定通信协议,把二层报文封装在IP报文之上的新的数据格式. 这样不但能够充分利用成熟的IP路由协议进程数据分发,而且在Overlay技术 ...

  9. docker网络之overlay

    使用docker network的好处是:在同一个网络上的容器之间可以相互通信,而无需使用expose端口特性 本文使用docker-swarm进行overlay网络的分析.使用2个vmware模拟2 ...

随机推荐

  1. laravel中Blade模板继承

    Blade模板继承 和 区块 <!-- 文件保存于 resources/views/layouts/app.blade.php --> <html> <head> ...

  2. SDRAM引入

    SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器. DDR: DDR是DDR SDRAM,是SDRAM的升级版.(DDR:double ...

  3. hdu1845

    题解: 只要输出n/2即可 代码: #include<cstdio> #include<cmath> #include<cstring> #include<a ...

  4. 记录下一次错误报http请求500,

    1.请求控制层没问题,能请求到,如果缺少参数都会返回提示信息,但是请求参数都对了以后,居然报500,非常不解 找了好久,不知道哪里错了,最后经理提示是不是有可能,mapper.xml出错了,最后,我将 ...

  5. 获取Activity的返回参数

    一.新建一个空的工程 二.在主界面中添加一个按钮和一个TextView组件 三.新建一个空的activity,命名为TheAty,并添加一个按钮和一个EditText组件 四.重写TheAty的源代码 ...

  6. 使用 nvm 管理多版本 node

    首先,使用下面的命令来安装 nvm $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | b ...

  7. FireMonkey Premium Style Pack 2 for RAD Studio XE4

    FireMonkey Premium Style Pack 2 for RAD Studio XE4 http://cc.embarcadero.com/item/29483 http://www.e ...

  8. Ubuntu 中 java 环境 (sunjdk) 的配置 (附详细说明)

    暑假以来为了鼓捣双系统废了很大的劲儿,本来一股脑想装 CentOS,无奈怎么处理分区引导都不能成功地与 Win8 共存,最终用 Ubuntu 一句 "检测到系统上有 Windows Boot ...

  9. MFC中控制Tips的显示 - lingyun1120

    from:  http://www.cnblogs.com/lingyun1120/archive/2011/11/09/2243279.html MFC中为ToolTips生成了一个类CToolTi ...

  10. shell 中并发执行

    http://bbs.51cto.com/thread-1104907-1-1.html http://www.51testing.com/html/28/116228-238978.html htt ...