同样是两台服务器:

准备工作: 

设置容器的主机名

consul:kv类型的存储数据库(key:value)
docker01、02上:
vim  /etc/docker/daemon.json
{
  "hosts":["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"],  这行改了要修改自己的docker配置文件
  "cluster-store": "consul://10.0.0.11:8500",
  "cluster-advertise": "10.0.0.11:2376"     另外一台写自己的ip即可
}
vim /etc/docker/daemon.json
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd  --containerd=/run/containerd/containerd.sock  这行改成这样,两台的都要改
systemctl daemon-reload
systemctl restart docker

 docker01上:

docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap  这条命令在设置容器的主机名之后做
[root@docker1 centos_zabbix]# docker images
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
10.0.0.11:5000/kode                  v2                  6914fda5fd44        4 hours ago         502MB
kode                                 v2                  6914fda5fd44        4 hours ago         502MB
10.0.0.11:5000/centos6.9_nginx_ssh   v3                  92b1087df3f5        13 hours ago        431MB
centos6.9_nginx_ssh                  v3                  92b1087df3f5        13 hours ago        431MB
centos6.9_nginx_ssh                  v2                  6307e23ee16d        13 hours ago        431MB
<none>                               <none>              b94c822488f9        13 hours ago        431MB
centos6.9_nginx_ssh                  v1                  f01eeebf918a        13 hours ago        431MB
<none>                               <none>              54167f1d659b        13 hours ago        431MB
<none>                               <none>              71474e616504        13 hours ago        430MB
centos6.9_ssh                        v2                  03387f99f022        14 hours ago        307MB
<none>                               <none>              82d0e9ce844b        14 hours ago        195MB
kode                                 v1                  c0f486ac58fe        15 hours ago        536MB
progrium/consul                      latest              09ea64205e55        4 years ago         69.4MB   这里有了
[root@docker1 centos_zabbix]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED        STATUS                       PORTS                                         NAMES
1016753ee64d        progrium/consul     "/bin/start -server …"   4 minutes ago       Exited (255) 3 minutes ago   53/tcp, 53/udp, 8300-8302/tcp, 8400/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp   consul 

最后在页面上访问:

 

2)创建overlay网络

docker network create -d overlay --subnet 172.16.1.0/24 --gateway 172.16.1.254 ol1  这个网段不能和宿主机上相同,并且随便在一台上执行这个命令即可

 查看容器的网络,有没有出现overlay

[root@docker1 shell]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
e480a4fe5f4b        bridge              bridge              local
0a3cbfe2473f        host                host                local
4e5ccdc657e1        macvlan_1           macvlan             local
aab77f02a0b1        none                null                local
8ae111afded7        ol1                 overlay             global

3)启动容器测试

一台上:
docker run -it --network ol1 --name test01  centos6.9_ssh:v2  /bin/bash
另外一台上:
docker run -it --network ol1 --name test02  centos6.9_ssh:v2  /bin/bash

之后可以通过test01和test02之间联通

  

真实原理:

每个容器有两块网卡,eth0实现容器间的通讯,eth1实现容器访问外网  

  

Dcoker跨主机容器通信之overlay的更多相关文章

  1. centos7下安装docker(15.8docker跨主机容器通信总结)

    性能:underlay网络的性能优于overlay.Overlay网络利用隧道技术,将数据包封装到UDP中进行传输,由于涉及数据包的封装和解封,存在额外的CPU和网络的开销,虽然几乎所有overlay ...

  2. Docker:跨主机容器间通信之overlay [十五]

    一.配置overlay类型网络准备工作 1.在luoahong3主机上 docker run -d -p 8500:8500 -h consul --name consul progrium/cons ...

  3. docker 通过overlay 构建跨主机联网通信

    初始化 swarm meiya@meiya:~$ docker swarm init 将当前节点作为manager节点加入swarm meiya@meiya:~$ docker swarm join- ...

  4. Docker跨主机容器之间的通信macvlan

    找两台测试机: [root@docker1 centos_zabbix]# docker network ls NETWORK ID NAME DRIVER SCOPE 19ac9a55bedb br ...

  5. Weave实现跨主机容器互联

    安装与启动 直接从github下载二进制文件安装. docker_host1(服务器1): 下载weave # sudo wget -O /usr/local/bin/weave https://ra ...

  6. 用flannel实现跨主机container通信

    最近在看kubernetes,看到了网络部分,这部分是集群设计的难点,也是我比较感兴趣的部分.书上提到不同node的container之间通信主要使用flannel,openvswitch等技术,这些 ...

  7. Docker 网络管理及容器跨主机通信

    1.网络模式 docker支持四种网络模式,使用--net选项指定: host,--net=host,如果指定此模式,容器将不会获得一个独立的network namespace,而是和宿主机共用一个. ...

  8. Docker容器跨主机通信之:OVS+GRE

    一.概述 由于docker自身还未支持跨主机容器通信,需要借助docker网络开源解决方案 OVS OpenVSwich即开放式虚拟交换机实现,简称OVS,OVS在云计算领域应用广泛,值得我们去学习使 ...

  9. docker容器跨主机网络overlay

    前提:已部署好docker服务服务预计部署情况如下10.0.0.134 Consul服务10.0.0.135 host1  主机名mcw510.0.0.134 host2  主机名mcw6host1与 ...

随机推荐

  1. ZOJ 3735 dp

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3735 好久没做DP题了,一开始没理解题目里的C(M,3)是干什么,原来就是 ...

  2. LeetCode——787. K 站中转内最便宜的航班

    有 n 个城市通过 m 个航班连接.每个航班都从城市 u 开始,以价格 w 抵达 v. 现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到从 src 到 dst 最多经过 ...

  3. 搭建zookeeper环境

    zookeeper是一个强一致的分布式数据库,由多个节点共同组成一个分布式集群,挂掉任意一个节点,数据库仍然可以正常工作. 独立模式 下载zookeeper打包文件,并进行解压 ➜ ~ tar -xv ...

  4. 2.Jenkins结合k8s完成Jenkins slave功能

    1.构建镜像 下载基础镜像,这里使用openvz的包,下载地址为:https://wiki.openvz.org/Download/template/precreated,下载centos7的镜像 下 ...

  5. feign声明式客户端

    参考地址: https://blog.csdn.net/qq_30643885/article/details/85341275 Feign是一个声明式的Web服务客户端,使得编写Web服务客户端变得 ...

  6. DOCKER 学习笔记2 认识dockerfile自定义镜像

    Dockerfile 概念 Dockerfile 是一个文本文件,但包含所构建容器在运行时候的参数.库.资源配置.可以简单理解为我们现有的镜像,比如Centos/Nginx 但我们需要构建一个容器的时 ...

  7. redhat6.5 升级内核

    1.导入key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2.安装elrepo的yum源 rpm -Uvh https:// ...

  8. Java--面向对象三大特征-->封装、继承、多态

    简介 在面向过程当中只有存在封装(对功能的封装 例如c语言中的函数),而在面向对象中才存在这三大特性. 继承 -->inheritance 1.子类可以从父类继承属性和方法(除去父类私有化的方法 ...

  9. UIView 的Transform属性以及 CGAffineTransform的使用

    什么是Transform? Transform是一个3×3的矩阵,如下图所示: 通过这个矩阵我们可以对一个坐标系统进行缩放,平移,旋转以及这两者的任意组着操作.而且矩阵的操作不具备交换律,即矩阵的操作 ...

  10. HDU-1540 Tunnel Warfare(区间连续点长度)

    http://acm.hdu.edu.cn/showproblem.php?pid=1540 Time Limit: 4000/2000 MS (Java/Others)    Memory Limi ...