同样是两台服务器:

准备工作: 

设置容器的主机名

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. windows 安装svn 要点(非安装步骤)

      http://www.visualsvn.com/files/VisualSVN-Server-2.5.6.msi 下载服务端 windows2008搭建svn 1.360软件管家下载 Visua ...

  2. TiKV 在京东云对象存储元数据管理的实践

    京东云对象存储是在 2016 年作为公有云对外公开的,主要特点是可靠.安全.海量.低成本,应用于包括一些常用的业务场景,比如京东内部的京东商城视频/图片云存储,面向京东云公有云外部的开发者的服务,和面 ...

  3. 从[Greenplum 6.0] 1分钟安装尝鲜开始

    Greenplum目前6版本目前已经迭代了几个小版本了,随着版本的更新,不断的有bug被修复. 打算试用的朋友可以入手了. 作为开年的第一个工作日的第一个帖子,必须从“开天辟地”的6.0开始.以下内容 ...

  4. [HEOI2013]ALO(可持久化Trie+链表)

    你永远不会相信一个快AFO的选手不会可持久化Trie. 其实异或粽子那题可以用可持久化Trie做,不过我还是没用,用的一般的Trie(其实可持久化是多此一举),于是到现在还是不会可持久化Trie. 这 ...

  5. [Scoi2016]背单词(trie+贪心)

    题意:重新解释一下题意吧(题意晦涩难懂) 给定n个单词,你可以按照顺序学习,当学习这一单词时,这个单词是第x个要学习的单词,需要的代价分三类: 1.若存在其他单词是其后缀没被学习,则代价为n2 2.若 ...

  6. 洛谷 P3808 【模板】AC自动机(简单版)

    传送门:https://www.luogu.org/problem/P3808 题解:是一个AC自动机的裸题了,注释加在代码里面了 #include<bits/stdc++.h> usin ...

  7. android蜂巢效果、环形菜单、Kotlin影视应用、简约时钟、查看导出App、支付宝AR扫码效果等源码

    Android精选源码 一个蜂巢布局管理器,外观帅气外,动画效果也是很赞 一个基础 UI 框架项目,实现不同布局格式的混排 仿建行app效果,一个环形菜单的布局管理器源码 基于组件化实现的一款用Kot ...

  8. Python - 文件和目录

    # -*- coding: utf-8 -*- import os print(os.name) # 获取操作系统类型 # print(os.uname()) # 获取操作系统的详细信息,Win不支持 ...

  9. 14 微服务电商【黑马乐优商城】:day01-springboot(Thymeleaf快速入门)

    本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) :day01-springboot(Thyme ...

  10. ElasticSearch 本机可以访问,外网无法访问----问题解决

    问题:本机可以访问,外网无法访问 config/elasticsearch.yml network.host: 0.0.0.0 使用普通用户zuoys,重启es,报错如下: [1]: max file ...