Docker容器利用weave实现跨主机互联

环境:

实现目的:实现主机A中容器1与主机B中容器1的网络互联

主机A步骤:

①下载复制weave二进制执行文件(需要internet)
[root@192 ~]#git clone https://github.com/weaveworks... #如没有git,yum install git
[root@192 ~]#cp -p /root/weave/weave /usr/local/bin/
[root@192 ~]#weave version
weave version会检测weave运行容器状态,所以会先从注册服务器下载weaveexec容器

②在第一次weave launch会报各种错误,根据提示先排除错误在进行启动。
[root@192 ~]# iptables -L FORWARD --line-numbers
找到规则REJECT all anywhere anywhere reject-with icmp-host-prohibited的编号将它删除
[root@192 ~]# iptables -D FORWARD 19
打开本地tcp和udp对weave的端口
[root@192 ~]# iptables -I INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 6783 -j ACCEPT
[root@192 ~]# iptables -I INPUT -m state --state NEW,ESTABLISHED -p udp --dport 6783 -j ACCEPT
weave launch会自动进行tls检测,把它关掉启动
[root@192 ~]# weave launch --no-detect-tls
等待下载weave剩下的支持容器

③启动docker容器,使用weave网桥给容器分配沟通地址
[root@192 ~]# docker run -dit -P centos/httpd:v1
[root@192 ~]# weave attach 192.168.2.1/24 容器ID
192.168.2.1

主机B步骤:

①下载复制weave二进制执行文件(需要internet)
[root@192 ~]#git clone https://github.com/weaveworks...
[root@192 ~]#cp -p /root/weave/weave /usr/local/bin/
[root@192 ~]#weave version
weave version会检测weave运行容器状态,所以会先从注册服务器下载weaveexec容器

②在第一次weave launch会报各种错误,根据提示先排除错误在进行启动。
[root@192 ~]# iptables -L FORWARD --line-numbers
找到规则REJECT all anywhere anywhere reject-with icmp-host-prohibited的编号将它删除
[root@192 ~]# iptables -D FORWARD 19
打开本地tcp和udp对weave的端口
[root@192 ~]# iptables -I INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 6783 -j ACCEPT
[root@192 ~]# iptables -I INPUT -m state --state NEW,ESTABLISHED -p udp --dport 6783 -j ACCEPT
weave launch会自动进行tls检测,把它关掉启动
[root@192 ~]# weave launch 192.168.1.9 --no-detect-tls #启动并连接主机A,注意主机A不要去连接主机B
等待下载weave剩下的支持容器

③启动docker容器,使用weave网桥给容器分配沟通地址
[root@192 ~]# docker run -dit -P centos/httpd:v1
[root@192 ~]# weave attach 192.168.2.2/24 容器ID
192.168.2.2

测试:

[root@192 ~]# docker exec -it 容器ID /bin/bash
[root@192 ··]# ping 192.168.2.2
PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data.
64 bytes from 192.168.2.2: icmp_seq=1 ttl=64 time=3.06 ms
64 bytes from 192.168.2.2: icmp_seq=2 ttl=64 time=2.21 ms
跨主机通信成功

Docker容器利用weave实现跨主机互联的更多相关文章

  1. docker之 网络模式和跨主机通信

    Docker的四种网络模式Bridge模式 当Docker进程启动时,会在主机上创建一个名为docker0... Docker的四种网络模式 Bridge模式 当Docker进程启动时,会在主机上创建 ...

  2. 一分钟看懂Docker的网络模式和跨主机通信

    文章转载自:http://www.a-site.cn/article/169899.html   Docker的四种网络模式Bridge模式 当Docker进程启动时,会在主机上创建一个名为docke ...

  3. Docker的网络模式和跨主机通信

    文章转载自:http://www.a-site.cn/article/169899.html   Docker的四种网络模式Bridge模式 当Docker进程启动时,会在主机上创建一个名为docke ...

  4. 使用weave实现跨主机docker容器互联

    关于weave的原理不做细致的说明,如果想了解weave可以登陆官网:https://www.weave.works/ In this post,使用阿里云3台ECS服务器进行weave搭建,并测试搭 ...

  5. Weave实现跨主机容器互联

    安装与启动 直接从github下载二进制文件安装. docker_host1(服务器1): 下载weave # sudo wget -O /usr/local/bin/weave https://ra ...

  6. 如何使用Flannel搭建跨主机互联的容器网络

    当您将多台服务器节点组成一个Docker集群时,需要对集群网络进行设置,否则默认情况下,无法跨主机容器互联,接下来我们首先分析一下原因. 跨主机容器互联 下图描述了一个简单的集群网络,在该集群内,有两 ...

  7. Jenkins(Docker容器内)使用宿主机的docker命令

    1.Jenkins镜像 Docker容器内的Jenkins使用容器外宿主机的Docker(即DooD,还有另外的情况就是DioD),google一下有几种说法,但是都没试成功(试过一种就是修改宿主机/ ...

  8. CentOS7 Docker容器无法ping通宿主机ip问题解决记录

    Docker服务部署启动容器发现docker容器内访问宿主机IP不通,于是进入容器内ping宿主机IP,发现无法ping通,容器IP为172.17.0.2,于是继续ping172.17.0.1也不通, ...

  9. docker跨主机互联

    以下内容只是命令,原理自行百度,google或者官方查阅! 方案一.overlay Consul 三台主机为例(都要安装docker): 192.168.20.20(consul服务) 192.168 ...

随机推荐

  1. Nginx知多少系列之(三)配置文件详解

    目录 1.前言 2.安装 3.配置文件详解 4.Linux下托管.NET Core项目 5.Linux下.NET Core项目负载均衡 6.Linux下.NET Core项目Nginx+Keepali ...

  2. scratch 如何改变变量的作用域

    在新建变量的时候,有个选项是“适用于所有角色”还是“仅适用于当前角色”.通常称前者为全局变量,所有角色都可以访问到这个变量:后者,称为局部变量,只能在当前角色里访问到这个变量.例如,在使用克隆功能时, ...

  3. es--es分词的一些分析技巧

    查看某个字段的分词结果 POST /index/tyhpe/id/_termvectors?fields=fields_name 例如:http://localhost:9200/prod_membe ...

  4. 分治算法(C++版)

    #include<iostream>using namespace std;  void printArray(int array[],int length)  {      for (i ...

  5. beanshell自定义聚合报告时分线程组阶段展示

    假设现在一共会加载100个线程,期望聚合报告中分别展示1-20,20-40,40-60,60-80的四个阶段的线程并发性能数据,而不是总体的统计数据 beanshell脚本,具体内容: import ...

  6. [科普向] Roguelike游戏到底是什么?

    简单的说 Roguelike 是 RPG(角色扮演游戏)的一个分支,也是最重要的一个分支.这个名字源于 1980 年发布的著名电子游戏<Rogue>.按字面上理解,Roguelike 就是 ...

  7. AJ学IOS 之微博项目实战(13)发送微博调用相机里面的图片以及调用相机

    AJ分享,必须精品 一:效果 二:代码 相机部分就简单多了,几行代码调用而已,但是如果你要是想实现更多丰富的功能,需要自己写.利用AssetsLibrary.framework,利用这个框架可以获得手 ...

  8. C#多线程(6):线程通知

    目录 AutoRestEvent 类 常用方法 一个简单的示例 解释一下 复杂一点的示例 解释 回顾一下,前面 lock.Monitor 部分我们学习了线程锁,Mutex 部分学习了进程同步,Sema ...

  9. 经典算法之归并排序——python和JS实现

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:韩忠康 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...

  10. Some Modern Softwares' drawbacks: User experience 12/29/2015

    In the nowadays, there are many APP in the PC or smart Phone. Some of them can't meet the customers' ...