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. SpringCloud(三)之我学 Hystrix

    1.断路器 在消费服务的启动类,添加注解:@EnableCircuitBreaker,在消费服务的调用类上,添加注解:@HystrixCommand(fallbackMethod = "&q ...

  2. YII基础

    一.目录结构 应用中最重要的目录和文件(假设应用根目录是 basic): basic/ 应用根目录 composer.json Composer 配置文件, 描述包信息 config/ 包含应用配置及 ...

  3. 8.2 常见api:String类的使用

    /* * String:字符串类 * 由多个字符组成的一串数据 * 字符串其本质是一个字符数组 * * 构造方法: * String(String original):把字符串数据封装成字符串对象 * ...

  4. Mysql基础知识一

    1.数据库的定义 数据:描述事物符号记录.(包括数字.文字.图形.图像.声音.档案记录等)以记录形式统一的格式进行存储. 广义上的数据:出现在计算机内部的一切二进制数据流都为数据 狭义上的数据:只是数 ...

  5. 数据结构和算法(Golang实现)(15)常见数据结构-列表

    列表 一.列表 List 我们又经常听到列表 List数据结构,其实这只是更宏观的统称,表示存放数据的队列. 列表List:存放数据,数据按顺序排列,可以依次入队和出队,有序号关系,可以取出某序号的数 ...

  6. L2 Softmax与分类模型

    softmax和分类模型 内容包含: softmax回归的基本概念 如何获取Fashion-MNIST数据集和读取数据 softmax回归模型的从零开始实现,实现一个对Fashion-MNIST训练集 ...

  7. Python - 实现文件名自动更改,避免同名文件被覆盖的两个解决方法

    [原创]转载请注明作者Johnthegreat和本文链接. 在一些不多的数据下载和生成的时候,我们倾向于直接保存为文件,当我们修改某些参数后再一次运行时,之前运行时生成的文件就被覆盖了.为了解决这个问 ...

  8. 从hfctf学习JWT伪造

    本文作者:Ch3ng easy_login 简单介绍一下什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519) ...

  9. 详解 Collection集合

    (请关注 本人"集合总集篇"博文--<详解 集合框架>) 首先,本人来讲解下 Collection集合的继承体系: Collection集合 的继承体系: Collec ...

  10. Nmap-脚本检测CVE漏洞

    Nmap的一个鲜为人知的部分是NSE,即Nmap Scripting Engine,这是Nmap最强大和最灵活的功能之一.它允许用户编写(和共享)简单脚本,以自动执行各种网络任务.Nmap内置了全面的 ...