一.环境

三台机器,其中一台安装 consul(192.168.1.21), 两台创建网络(192.168.1.32,33)

二.实现步骤

1.构建环境

1)三台机器部署docker环境

2)选择一台作为consul服务器,安装consul;consul 为一个key-value数据库用于保存网络状态信息,其他的支持key-value的软件有etcd,zookeeper等。

我们这里直接用镜像方式启动consul容器,来部署 consul,

docker run -d  -p  8500:8500  -h  consul  --name   consul  progrium/consul  -server  -bootstrap

启动之后,我们可以用浏览器192.168.1.21:8500, 进行查看consul;

3)修改两台机器的docker daemon  配置文件

/usr/lib/systemd/system/docker.service

在ExecStart=/usr/bin/dockerd 后加入  --cluster-store=consul://192.168.1.21:8500 --cluster-advertise=ens33:2376

其中192.168.1.21为consul 主机, ens33为 consul 主机的网卡

4)到浏览器192.168.1.21:8500, 进行查看consul;在 key/value 下发现两个节点,此为自动注册到consul数据库中的节点。

2.构建overlay网络

1)在一台主机中创建overlay网络

docker  network  create  -d  overlay  ov_net1

-d 为指定driver为overlay

docker  network ls  查看网络情况

网络类型为 global,同时可在另一台主机查看到该网络,因为创建该网络时,主机将网络信息存入 consul中,另一台主机会读取到新网络的信息,在主机上对网络的操作会同步到consul中。

2)在网络中运行容器

docker run -itd --name bbox1 --network ov_net1 busybox

查看网络配置

docker exec bbox1 ip r

会有两个网卡,一个eth0,连接 overlay网络, 另一个 eth1,连接主机的docker_gwbridge, 为访问外网的容器提供出口;

在另一台机器运行容器2,

docker run -itd --name bbox2  --network ov_net1 busybox

docker exec bbox2 ip a

docker exec bbox2 ping -c bbox1  同一个overlay 网络的容器可以互相ping 通

3)不同overlay中网络的隔离性

创建一个ov_net2网络

docker network create -d overlay ov_net2

在该网络中运行一个容器

docker  run -itd  --name  bbox3  --network  ov_net2

测试该容器是否能ping 通其他容器

docker  exec -it  bbox3  ping  -c  2  bbox1

不通,说明不同overlay网络之间是隔离的。

如果要让两个 overlay的容器通信,可以将其中的一个容器连到另一个容器所在的overlay,

docker network connect ov_net1 bbox3

测试docker exec -it bbox3 ping -c 2 10.0.0.2 ,网络为通。10.0.0.2为bbox1的ip地址

4)ip管理

默认分配子网,10.0.X.0/24 ,也可以通过 --subnet 指定ip 范围

docker  network  create  -d  overlay  --subnet  10.2.0.0/24   ov_net3

docker 环境下创建 overlay 网络方案的更多相关文章

  1. docker环境下构建flannel 网络

    flannel 是coreos 开发的网络解决方案,为每一台主机分配一个 subnet,容器从此subnet 中分配ip,ip可以在主机间路由.每个subnet从更大的ip池中划分,为了在各个主机间共 ...

  2. 理解Docker(6):若干企业生产环境中的容器网络方案

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  3. Docker系列04—跨主机网络方案(overlay/weave)

    在前面详细讲解了几种网络模式:none,host,bridge,container.他们解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信. 跨主机网络方案包括两大类: 1,docke ...

  4. 创建 overlay 网络 - 每天5分钟玩转 Docker 容器技术(50)

    上一节我们搭建好实验环境,配置并运行了consul,今天开始创建 overlay 网络. 在 host1 中创建 overlay 网络 ov_net1: -d overlay 指定 driver 为 ...

  5. Docker Swarm 创建overlay网络

    Docker Swarm 创建overlay网络 环境: 系统:Centos 7.4 x64 应用版本:Docker 18.09.0 管理节点:192.168.1.79 工作节点:192.168.1. ...

  6. Docker环境下的Mysql8 实现主从数据库数据同步方案

    本文记录下通过MySQL Replication在Docker环境下,通过多个容器 实现数据库主从配置. MySQL Replication就不多解释了,简单说就是MySQL非常出色的一个功能,该功能 ...

  7. docker环境下solrcloud+zookeeper集群部署教程

    前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...

  8. docker环境下solr6.0配置(中文分词+拼音)

    前言:这篇文章是基于之前的“linux环境下配置solr5.3详细步骤”(http://www.cnblogs.com/zhangyuan0532/p/4826740.html)进行扩展的.本篇的步骤 ...

  9. 050、创建overlay网络(2019-03-15 周五)

    参考https://www.cnblogs.com/CloudMan6/p/7280787.html   在host01中创建overlay网络 ov_net1   在下面的例子中可以看到,我们在ho ...

随机推荐

  1. 【Leetcode】【Medium】Maximum Product Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  2. 在win7 windows 上编译 beego 上传到 linux 去执行

    在beego的项目目录下,执行: GOOS=linux GOARCH=amd64 go build So easy!但是却搞了好久! 参考连接:http://blog.csdn.net/changji ...

  3. Python学习---同步条件event/队列queue1223

    写在前面: 在使用这些共享API的时候,我们要注意以下几点: 在UNIX平台上,当某个进程终结之后,该进程需要被其父进程调用wait,否则进程成为僵尸进程(Zombie).所以,有必要对每个Proce ...

  4. 微软在线 VSTS/TFS 使用简介,如何删除项目,帐号,获取git地址等

    名称:微软 VSTS 全称: Visual Studio Team Services 地址:https://www.visualstudio.com/zh-hans/ 说明:注册就可以了使用了(如何使 ...

  5. Hibernate、Mybatis与Spring Data JPA

    从零开始集成Springboot+MyBatis+JPA https://www.jianshu.com/p/e14c4a6f6871 MyBatis 与Hibernate的区别 http://xhr ...

  6. 一个SAP开发人员的2018年终总结

    我是SAP成都研究院的Jerry Wang,我喂自己袋盐. 时间过得真快,2017年发生的事情还历历在目,一转眼,2018年又马上要结束了. Jerry惊恐地发现,随着年龄的增长,时光流逝的速度仿佛有 ...

  7. Intellii IDEA 中快速补全main方法:psvm

    psvm可以快速补全main方法 效果:

  8. BZOJ2816:[ZJOI2012]网络(LCT)

    Description 有一个无向图G,每个点有个权值,每条边有一个颜色.这个无向图满足以下两个条件: 对于任意节点连出去的边中,相同颜色的边不超过两条. 图中不存在同色的环,同色的环指相同颜色的边构 ...

  9. isset() 与 array_key_exists() 比较

    1.对于数组值的判断不同,对于值为null或''或false,isset返回false,array_key_exists返回true: 2. 执行效率不同,isset是内建运算符,array_key_ ...

  10. C# .NET开发图形图像程序时提示"GDI+ 中发生一般性错误"

    今天突然收到一封信,说我那个极度复杂的Marshal的问题被解决了(http://www.cnblogs.com/hotcan/archive/2005/01/12/91007.html).顿时感觉好 ...