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. Maven多模块项目+MVC框架+AJAX技术+layui分页对数据库增删改查实例

    昨天刚入门Maven多模块项目,所以简单写了一个小测试,就是对数据库单表的增删改查,例子比较综合,写得哪里不妥还望大神赐教,感谢! 首先看一下项目结构: 可以看到,一个项目MavenEmployee里 ...

  2. python开发基于SMTP协议的邮件代发服务

    写在这篇文章前照例给大家灌输点名词解释,理论知识,当然已经很熟悉的同学可以往下翻直接看干货 1. 什么是SMTP SMTP即简单传输协议(Simple Mail Transfer Protocol), ...

  3. Redis操作,数据库操作

    Redis操作,数据库操作 案例1:源码安装Redis缓存服务 案例2:常用Redis数据库操作指令 案例3:配置Redis主从服务器 1 案例1:源码安装Redis缓存服务 1.1 问题 本案例要求 ...

  4. wireshark抓包实战(一),抓包原理

    一.什么样的"包"能被wireshark抓住呢? 1.本机 即直接抓取进出本机网卡的流量包.这种情况下,wireshark会绑定本机的一块网卡. 2.集线器 用于抓取流量泛洪,冲突 ...

  5. GhostNet: 使用简单的线性变换生成特征图,超越MobileNetV3的轻量级网络 | CVPR 2020

    为了减少神经网络的计算消耗,论文提出Ghost模块来构建高效的网络结果.该模块将原始的卷积层分成两部分,先使用更少的卷积核来生成少量内在特征图,然后通过简单的线性变化操作来进一步高效地生成ghost特 ...

  6. Python高级特性-迭代器和生成器

    迭代器 Python中可迭代对象(iterable)通俗指可直接作用与For循环的数据对象,如Python中的集合数据类型,字符串(str),列表(list),元组(tuple),集合(set),字典 ...

  7. C语言实现顺序表(顺序存储结构)

    顺序表(顺序存储结构)及初始化过程详解 顺序表,全名顺序存储结构,是线性表的一种.通过<线性表>一节的学习我们知道,线性表用于存储逻辑关系为"一对一"的数据,顺序表自然 ...

  8. 【python实现卷积神经网络】全连接层实现

    代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...

  9. ES5和ES6基本介绍与面向对象的基本思想

    ES6和ES5基本介绍 let  const  关键词定义变量 let 定义变量 特点: let 定义的变量,不会进行预解析  let 定义的变量,与 forEach() 中的变量类似  每次执行都会 ...

  10. Spring Boot 集成 Spring Security 入门案例教程

    前言 本文作为入门级的DEMO,完全按照官网实例演示: 项目目录结构 Maven 依赖 <parent> <groupId>org.springframework.boot&l ...