docker跨主机通信-overlay
使用consul
1,让两个网络环境下的容器互通,那么必然涉及到网络信息的同步,所以需要先配置一下consul。
直接运行下面命令。启动consul。
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
2,同步网络信息的工具安装好了,那么肯定需要容器能够使用这个同步工具,以便consul能够找到各个服务器的docker节点。修改各个节点 docker的启动配置文件/lib/systemd/system/docker.service。在 ExecStart 最后添加
--cluster-store=consul://<consul服务的ip地址>:8500
--cluster-advertise=eth0(当前对外ip使用的网卡名或者直接使用当前ip):2376
3,保证所有主机的docker配置文件都与2一致,这样就能保证所有的docker overlay网络同步在consul上。
基本上需要配置的工作我们都已经完成了。
4,在随机一台机器上创建overlay网络(比如我想创建的docker的mongo集群网络互通,我创建了一个mongo的overlay的网络):
docker network create -d overlay mongo
这个时候,你在别的机器上执行docker network ls,你将能够看到在上一台机器创建的overlay网络
使用docker swarm 的overlay 网络
非集群即docker swarm 创建的服务(docker service create 这种),也就是使用docker run 启动的容器附加到此网络上。
注意:在管理节点创建overlay 网络后,只有在管理节点创建服务后,在工作节点才能出现overlay 网络,然后将容器网络附加到docker swarm 网络上即可。
## 在管理节点创建overlay 网络
docker network create --opt encrypted --driver overlay --attachable tt
#管理节点查看网络情况
[xxxx@centos-m ~]$ docker network ls
NETWORK ID NAME DRIVER SCOPE
f583b9e65520 bridge bridge local
5af05ec8c792 docker_gwbridge bridge local
ebfdd7fb8719 host host local
r4geqg1szdc1 ingress overlay swarm
88c236d07e7c none null local
lug5me4dil6u tt overlay swarm
2a320895c372 walle_walle-net bridge local
#工作节点1查看网络
[xxxx@centos-s ~]$ docker network ls
NETWORK ID NAME DRIVER SCOPE
5302500564b4 bridge bridge local
550f3511d5b4 docker_gwbridge bridge local
3905db71d4f5 host host local
r4geqg1szdc1 ingress overlay swarm
da68ab23664b none null local
#工作节点2查看网络
[xxxx@centos-s2 ~]$ docker network ls
NETWORK ID NAME DRIVER SCOPE
e716d217eb0f bridge bridge local
fa6a911939b4 docker_gwbridge bridge local
9f837a936ccf host host local
r4geqg1szdc1 ingress overlay swarm
49ac475ae221 none null local
##创建服使工作节点出现创建的overlay 网络
docker network create --opt encrypted --driver overlay --attachable tt
非加密网络
docker network create -d overlay --attachable tt2
##创建用于激活工作节点overlay 网络的镜像
dockerfile
[xxxx@centos-m ~]$ cat Dockerfile
FROM busybox
MAINTAINER yon@xxxx.com
ENTRYPOINT ["tail","-f","/etc/hosts"]
docker build -t busybox-swarm . swarm 集群都要操作
##激活overlay 网络
docker service create --replicas 3 --name busybox-net --network tt busybox-swarm
查看服务
[xxxx@centos-m ~]$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
2gzw41kxbiau busybox-net replicated 3/3 busybox-swarm:latest
查看节点
[xxxx@centos-m ~]$ docker service ps busybox-net
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
10mmg3xh23rn busybox-net.1 busybox-swarm:latest centos-s Running Running 20 seconds ago
0h2z09vh34jp busybox-net.2 busybox-swarm:latest centos-s2 Running Running 20 seconds ago
vuosx2rrpgyr busybox-net.3 busybox-swarm:latest centos-m Running Running 21 seconds
##在其他节点起容器附加至overlay网络
docker run -it --rm --net=tt busybox /bin/sh
测试 ping busybox-net 过20秒左右开始反应
docker跨主机通信-overlay的更多相关文章
- Docker跨主机网络——overlay
前言 在Docker网络--单host网络一文中,我为大家总结了Docker的单机网络相关知识和操作,单机网络比较容易.本文我为大家总结Docker跨主机通信相关知识.同样本文大部分内容以CloudM ...
- Docker跨服务器通信Overlay解决方案(下) Consul集群
承接上文 本文基于上篇文章,详细的场景说明与分析在前篇随笔中业已记录,有兴趣可以移步 Docker跨服务器通信Overlay解决方案(上) Consul单实例 本文主旨 本文为Docker使用Cons ...
- Docker跨主机通信(九)--技术流ken
容器网络 在前面的博客中已经详细讲解了几种网络方案: none, host, bridge,user-defined.但是他们只是解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信.本 ...
- Docker 跨主机网络 overlay(十六)
目录 一.跨主机网络概述 二.准备 overlay 环境 1.环境描述 2.创建 consul 3.修改 docker 配置文件 4.准备就绪 三.创建 overlay 网络 1.在 host1 中创 ...
- Docker跨主机通信(九)
容器网络 在前面的博客中已经详细讲解了几种网络方案: none, host, bridge,user-defined.但是他们只是解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信.本 ...
- Docker容器跨主机通信--overlay网络
一.Docker主机间容器通信的解决方案 Docker网络驱动 Overlay: 基于VXLAN封装实现Docker原生Overlay网络 Macvlan: Docker主机网卡接口逻辑上分为多个子接 ...
- Docker跨服务器通信Overlay解决方案(上) Consul单实例
场景 公司微服务快上线了,微服务都是用Docker容器进行部署的,在同一台主机下,把服务都部署上,注册到Nacos的IP与PORT都是内网的IP与Dockerfile中定义的端口号,看起来好像也没什么 ...
- docker跨主机通信扁平化网络的设计与实现
端口映射.ovs. fannel,weave 1.使用网桥实现跨主机容器连接 使用Open vSwitch实现跨主机容器连接
- Docker跨主机通信之路由
一.实验环境: 主机名 主机IP Docker0_IP Docker1 192.168.88.130 172.17.0.1 Docker2 192.168.88.131 172.18.0.1 二.实验 ...
随机推荐
- hadop-eclipse-plugin导入plugins后没有mapreduce视图
这种现象一般由于安装在eclipse\plugins下的插件没有导入的问题. 解决方法:把 eclipse\configuration\org.eclipse.update 删除掉.出现这种情况的原因 ...
- 【VS开发】【智能语音处理】语音信号处理之(一)动态时间规整(DTW)
语音信号处理之(一)动态时间规整(DTW) zouxy09@qq.com http://blog.csdn.net/zouxy09 这学期有<语音信号处理>这门课,快考试了,所以也要了解了 ...
- nodejs版本控制:nvm use命令失效
Downloading npm version ... Download failed. Rolling Back. Rollback failed. remove C:\Users\Administ ...
- 【Linux 网络编程】端口
(1)众所周知的端口:0~1023,这些端口由IANA分配和控制它们紧密绑定用于一些服务.常用这些端口的通讯 明确表明了某些协议.例如:21端口为ftp服务端口. (2)注册端口:1024~49 ...
- IDEA下集成tomcat7插件将tomcat内嵌到web项目中
新建一个maven web项目 修改pom.xml文件 <build> <plugins> <!-- 配置Tomcat插件: 就是本地部署,将tomcat 内嵌到 web ...
- E - 秋实大哥与战争
秋实大哥与战争 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
- P1224 [NOI2013]向量内积
传送门 发现这个内积和矩乘有点像,考虑构造一个 $n$ 行 $m$ 列的矩阵 $A$,每一行都是一个题目给定的 $m$ 维向量 设 $B=AA^T$ ,其中 $A^T$ 为 $A$ 的转置矩阵,那么对 ...
- 位操作符:&位与、|位或、^异或、~求反、<<左移位、>>带符号右移位、>>>无符号右移位
. 操作符 名称 实例(例中使用字节) 描述 & 位与 10101110 & 10010010 得到10000010 两个相应位上比特如果都为1,则执行 与 操作会得到1 | 位或 1 ...
- 人工智能AI从入门到精通所有视频教程(140G)以及数据资料免费拿
包含了人工智能AI从入门到精通所有视频教程(140G). 资料获取方式,关注公总号RaoRao1994,查看往期精彩-所有文章,即可获取资源下载链接 更多资源获取,请关注公总号RaoRao1994
- js 代码大全(各种方法、属性)
事件源对象event.srcElement.tagNameevent.srcElement.type捕获释放event.srcElement.setCapture(); event.srcElemen ...