安装openvswitch的步骤请参考上一篇文章:http://www.cnblogs.com/xkops/p/5568167.html

环境:
192.168.3.201 node1
192.168.3.202 node2

1.在node1上创建网桥obr0,然后增加端口gre0到obr0。
ovs-vsctl add-br obr0
ovs-vsctl add-port obr0 gre0
ovs-vsctl set interface gre0 type=gre options:remote_ip=192.168.3.202
ovs-vsctl show

brctl addbr br0
ifconfig br0 192.168.1.1 netmask 255.255.255.0
brctl addif br0 obr0
brctl show

2.在node2上创建网桥obr0,然后增加端口gre0到obr0。
ovs-vsctl add-br obr0
ovs-vsctl add-port obr0 gre0
ovs-vsctl set interface gre0 type=gre options:remote_ip=192.168.3.201
ovs-vsctl show

brctl addbr br0
ifconfig br0 192.168.2.1 netmask 255.255.255.0
brctl addif br0 obr0
brctl show

3.在node1上启动容器,并查看ip地址。
docker run -it --name cct1 centos /bin/bash --使用Ctrl+p+q可以退出容器,但容器却能在后台运行。
ip: 192.168.1.2

4.在node2上启动容器,并查看ip地址。
docker run -it --name cct2 centos /bin/bash --使用Ctrl+p+q可以退出容器,但容器却能在后台运行。
ip: 192.168.2.2

5.在node1上添加路由表,使node1能到达node2定义的192.168.2.0/24网段。
ip route add 192.168.2.0/24 via 192.168.3.202 dev eth0

6.在node1上连接到容器,并测试与node2上容器的连通性。
docker attach centos
ping 192.168.2.2

7.在node2上添加路由表,使node2能到达node1定义的192.168.1.0/24网段。
ip route add 192.168.1.0/24 via 192.168.3.201 dev eth0

到此,如果没有出现任何问题的话,最后node1和node2上的两个容器之间能够互相ping通。

使用openvswitch实现跨主机docker容器互联的更多相关文章

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

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

  2. 多主机Docker容器的VLAN划分

    原文发表于cu:2016-06-06 参考文档: Docker网络的4种模式,pipework/ovs的简单使用等:http://www.infoq.com/cn/articles/docker-ne ...

  3. Docker:使用Ambassador进行跨主机间容器通信

    转载请注明出处:点我 由于Docker自身的网络的原因,想要在多主机间的容器之间进行通信是比较麻烦的事情.可以利用Ambassador容器来实现这一功能. 基本原理: 利用Ambassador来实现主 ...

  4. Docker系列(四):Docker容器互联

    基于Volume的互联 为什么需要Volume docker文件系统是分层的,下面的是全部是只读的,最上面的是可写层,容器中的进程如果修改了某个文件,比如修改了下层的某个文件,其实是在最顶层复制下层文 ...

  5. Docker - 容器互联

    容器互联 通过docker run命令的--link参数可以让容器之间通过连接(linking)系统进行交互. 参数格式:--link name:alias ,name是要链接的容器名称, alias ...

  6. 【Docker学习之六】Docker容器互联

    环境 docker-ce-19.03.1-3.el7.x86_64 centos 7 一.基于Volume的互联就是-v参数,将本机文件或目录挂载到容器目录,实现文件目录共享 二.基于Link的互联 ...

  7. docker容器互联,实现目录、服务共享

    一.需求 docker使服务之间实现容器隔离,比如Javaweb项目前端.后端.数据库.数据库后台,分别把它们部署在不同的容器里面,实现隔离.但服务和服务之间也有互访的需求,这就涉及到容器网络和容器互 ...

  8. Docker | 容器互联互通

    上篇讲到创建自定义网络,我创建了 mynet 网络,并指定了网关和子网地址.在上篇结尾呢,我抛出了一个问题:其它网络下的容器可以直接访问mynet网络下的容器吗?今天就让我们一块看下怎么实现容器互联. ...

  9. docker容器互联

    link方式 http://blog.csdn.net/halcyonbaby/article/details/42112325 通过link方式创建容器,然后我们可以使用被link容器的别名进行访问 ...

随机推荐

  1. JS URL传中文参数引发的乱码问题

    今天的项目中碰到了一个乱码问题,从JS里传URL到服务器,URL中有中文参数,服务器里读出的中文参数来的全是“?”,查了网上JS编码相关资料得以解决. 解决方法一: 1.在JS里对中文参数进行两次转码 ...

  2. spring整合quartz并持久化

    spring整合quartz有两种方式: 一.常见是使用配置文件,将定时任务保存到内存中 简单示例: <!-- 短信催还提醒任务调度 --> <bean id="overd ...

  3. 【C语言】05-printf和scanf函数

    一.printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据 1.用法 1> pr ...

  4. 9. Add the Block Storage service

    Block Storage Server: 1. sudo apt-get install python-mysqldb   2. sudo apt-get install lvm2   3. 创建存 ...

  5. 更新AD对象属性值

    1. 对于Set-ADUser不包含的对象属性,可以采用replace来操作 Set-ADUser -Identity 'UserA' -Replace @{userWorkstations = 'C ...

  6. [ZZ] Cache

    http://blog.sina.com.cn/s/blog_6472c4cc0102duzr.html 处理器微架构访问Cache的方法与访问主存储器有类似之处.主存储器使用地址编码方式,微架构可以 ...

  7. cURL 学习笔记与总结(5)用 cURL 访问 HTTPS 资源

    <?php $curlobj = curl_init(); // 初始化 curl_setopt($curlobj, CURLOPT_URL, "https://ajax.aspnet ...

  8. jQuery 判断表单中多个 input text 中至少有一个不为空

    html: 名称1:<input class="seasoning_name" type="text" name="seasoning_name ...

  9. Note: RewriteCond规则

    如果文件存在,就直接访问文件,不进行下面的RewriteRule:RewriteCond %{REQUEST_FILENAME} !-f 如果目录存在,就直接访问目录,不进行下面的RewriteRul ...

  10. js判断时间差

    //var startDate = "2015-09-09"; //var endDate = "2015-09-08"; var startDate = &q ...