一.环境

三台机器,其中一台安装 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. vagrant安装centos7

    1. 安装VirtualBox 去官网https://www.virtualbox.org/wiki/Downloads下载最新版的Virtualbox,然后双击安装,一直点击确认完成. 2. 安装V ...

  2. Win7系统托盘解决出现CH图标的方法

    中文环境下,使用的英文键盘应该是“中文(简体)-美式键盘",这个输入法虽然是用来打英文的,但是归到中文类的,对应就是CH 如果因为某些不知明原因,增加了"美式键盘"等其他 ...

  3. Oracle三种链接方式的区别

    1 nested loops join--我们用设置statistics_level=all的方式来观察如下表连接语句的执行计划: --T2表被访问100次(驱动表访问1次,被驱动表访问100次)-- ...

  4. 推荐一个可以把网页背景色调成护眼色的Chrome扩展应用

    程序员一天有10几个小时要面对着电脑,老是这种白晃晃的屏幕,谁的眼睛受得了? 我在网上逛了一圈,找到一个比较实用的Chrome扩展应用,可以一键实现将Chrome打开网页的背景色修改成护眼的豆沙绿,这 ...

  5. Parcel是个好玩意儿

    今天学习了一下Parcel打包工具,确实感觉十分简单易上手,基本不需要配置,未来可能是一个主流的打包工具.相比较于Webpack来说,Parcel简直是毫无难度.接下来总结一下我的学习收获. 1 安装 ...

  6. 可变对象(immutable)和不可变对象(mutable)

    可变对象(immutable)和不可变对象(mutable) 这个是之前一直忽略的一个知识点,比方说说起String为什么是一个不可变对象,只知道因为它是被final修饰的所以不可变,而没有抓住不可变 ...

  7. faster-rcnn anchor_target_layer、rpn_proposal_layer、proposal_target_layer

    faster rcnn中这三层是单独生成的层,也是复现最复杂的层 anchor_target_layer作用:从众多的anchor中选取出正负样本供rpn网络学习(实际上就是把anchor和gt进行配 ...

  8. 使用npm uninstall卸载express无效

    最近在看<node.js开发指南>学习node.js,因为书是2012年的书,对应的各种软件.包的版本就特别老,其中第五章用到express,书中版本用的是2.X版本,而我这边通过npm ...

  9. localStorage和cookie操作

    localStorage和cookie操作代码: cookie: { isSupportCookie: function() { return navigator.cookieEnabled; }, ...

  10. java根据数据库自动生成代码

    出现这个已经创建成功 出现这个情况,没有使用DBUtil,引入即可 已经创建完成 代码下载:https://github.com/weibanggang/tool 项目实例下载:https://pan ...