docker 环境下创建 overlay 网络方案
一.环境
三台机器,其中一台安装 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 网络方案的更多相关文章
- docker环境下构建flannel 网络
flannel 是coreos 开发的网络解决方案,为每一台主机分配一个 subnet,容器从此subnet 中分配ip,ip可以在主机间路由.每个subnet从更大的ip池中划分,为了在各个主机间共 ...
- 理解Docker(6):若干企业生产环境中的容器网络方案
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- Docker系列04—跨主机网络方案(overlay/weave)
在前面详细讲解了几种网络模式:none,host,bridge,container.他们解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信. 跨主机网络方案包括两大类: 1,docke ...
- 创建 overlay 网络 - 每天5分钟玩转 Docker 容器技术(50)
上一节我们搭建好实验环境,配置并运行了consul,今天开始创建 overlay 网络. 在 host1 中创建 overlay 网络 ov_net1: -d overlay 指定 driver 为 ...
- Docker Swarm 创建overlay网络
Docker Swarm 创建overlay网络 环境: 系统:Centos 7.4 x64 应用版本:Docker 18.09.0 管理节点:192.168.1.79 工作节点:192.168.1. ...
- Docker环境下的Mysql8 实现主从数据库数据同步方案
本文记录下通过MySQL Replication在Docker环境下,通过多个容器 实现数据库主从配置. MySQL Replication就不多解释了,简单说就是MySQL非常出色的一个功能,该功能 ...
- docker环境下solrcloud+zookeeper集群部署教程
前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...
- docker环境下solr6.0配置(中文分词+拼音)
前言:这篇文章是基于之前的“linux环境下配置solr5.3详细步骤”(http://www.cnblogs.com/zhangyuan0532/p/4826740.html)进行扩展的.本篇的步骤 ...
- 050、创建overlay网络(2019-03-15 周五)
参考https://www.cnblogs.com/CloudMan6/p/7280787.html 在host01中创建overlay网络 ov_net1 在下面的例子中可以看到,我们在ho ...
随机推荐
- 【Leetcode】【Medium】Maximum Product Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- 在win7 windows 上编译 beego 上传到 linux 去执行
在beego的项目目录下,执行: GOOS=linux GOARCH=amd64 go build So easy!但是却搞了好久! 参考连接:http://blog.csdn.net/changji ...
- Python学习---同步条件event/队列queue1223
写在前面: 在使用这些共享API的时候,我们要注意以下几点: 在UNIX平台上,当某个进程终结之后,该进程需要被其父进程调用wait,否则进程成为僵尸进程(Zombie).所以,有必要对每个Proce ...
- 微软在线 VSTS/TFS 使用简介,如何删除项目,帐号,获取git地址等
名称:微软 VSTS 全称: Visual Studio Team Services 地址:https://www.visualstudio.com/zh-hans/ 说明:注册就可以了使用了(如何使 ...
- Hibernate、Mybatis与Spring Data JPA
从零开始集成Springboot+MyBatis+JPA https://www.jianshu.com/p/e14c4a6f6871 MyBatis 与Hibernate的区别 http://xhr ...
- 一个SAP开发人员的2018年终总结
我是SAP成都研究院的Jerry Wang,我喂自己袋盐. 时间过得真快,2017年发生的事情还历历在目,一转眼,2018年又马上要结束了. Jerry惊恐地发现,随着年龄的增长,时光流逝的速度仿佛有 ...
- Intellii IDEA 中快速补全main方法:psvm
psvm可以快速补全main方法 效果:
- BZOJ2816:[ZJOI2012]网络(LCT)
Description 有一个无向图G,每个点有个权值,每条边有一个颜色.这个无向图满足以下两个条件: 对于任意节点连出去的边中,相同颜色的边不超过两条. 图中不存在同色的环,同色的环指相同颜色的边构 ...
- isset() 与 array_key_exists() 比较
1.对于数组值的判断不同,对于值为null或''或false,isset返回false,array_key_exists返回true: 2. 执行效率不同,isset是内建运算符,array_key_ ...
- C# .NET开发图形图像程序时提示"GDI+ 中发生一般性错误"
今天突然收到一封信,说我那个极度复杂的Marshal的问题被解决了(http://www.cnblogs.com/hotcan/archive/2005/01/12/91007.html).顿时感觉好 ...