测试服务器(centos6.5):
192.168.16.70 网卡:eth0
192.168.16.74 网卡:eth0
第一步,分别在2台机器执行:

yum install docker
service docker start
chkconfig docker on
service pull redis

centos修改默认网桥:
vi /etc/sysconfig/docker
other_args=-b=br0
$ service docker restart

如果删除网桥,可以执行:
$ ifconfig docker0 down
$ brctl delbr docker0

#brctl addbr br0
分别在Docker主机上建立虚拟网桥
桥接本地网卡:
# brctl addif br0 eth0
#brctl show

另ssh访问70和74时,绑定eth0到br0,或者更改默认网关,导致ssh连接关闭,登陆70和74所在虚拟机,在本机上操作才成功。
下面命令在本机执行,非ssh远程执行:
192.168.16.74上执行
ifconfig eth 0.0.0.0
ifconfig br0 192.168.16.74 network 255.255.255.0
route add -net default gw 192.168.16.1 dev br0

下面2条命令看需要执行:
route del -net default gw 192.168.16.1 dev eth0
route add -net 192.168.16.0/24 gw 192.168.16.1 dev br0

70本机服务器执行类似命令

第二步:

70服务器执行:
启动容器,不指定桥接网卡
docker run --name test-redis --net=none -d redis redis-server --appendonly yes
为容器4465c4ca0c21分配ip

安装pipework
[root@kuber-minion ~]# git clone https://github.com/jpetazzo/pipework
[root@kuber-minion ~]# cd pipework/
[root@kuber-minion pipework]# ls
LICENSE pipework README.md
[root@kuber-minion pipework]# cp pipework /usr/bin

//@前部分是ip地址和掩码,后面部分是网关地址
pipework br0 -i eth0 4465c4ca0c21 192.168.16.50/24@192.168.16.1

如报错,Object "netns" is unknown, try "ip help" centos6.5, 请:
centos 6.5 升级iproute
$ vim /etc/yum.repos.d/rdo-release.repo
-------------------------------------------------------------------------------------
CentOS6.6 升级iproute
[openstack-icehouse]
name=OpenStack Icehouse Repository
baseurl=https://repos.fedorapeople.org/repos/openstack/EOL/openstack-icehouse/epel-6/
gpgcheck=0
enabled=1
-------------------------------------------------------------------------------------
#yum update iproute

74服务器执行(也许执行安装pipework和升级iproute):
#docker run -it -d --net=none --name client-redis redis redis-cli
#pipework br0 -i eth0 c3669c4eee03 192.168.16.51/24@192.168.16.1

登陆容器:
docker exec -it client-redis /bin/sh
查看各自ip,并测试是否可连接远程容器redis服务端

附:
当执行下面语句时,开放一个本机端口,其他机器可通过6378端口访问容器内服务:
#docker run --name some-redis -d -p 192.168.16.70:6378:6379 redis redis-server --appendonly yes

测试中用到的一些其他命令:
查看启动的容器
docker ps
查看所有容器,包括没启动的
docker ps -a
启动一个存在的容器
docker start some-redis
删除容器
docker rm e6cafd876b67

测试docker不同主机间容器互相访问的更多相关文章

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

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

  2. [docker]使用quaaga实现(rip ospf)实现主机间容器互通

    使用quaaga实现(rip ospf)实现主机间容器互通 - n1设置 brctl addbr br0 ip a a 10.1.1.1/24 br0 ip a a 10.1.1.1/24 dev b ...

  3. docker中宿主机与容器(container)互相拷贝传递文件的方法

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/71425077 本文出自[我是干勾鱼的博客] 前面讲解过如何进入.退出docker ...

  4. docker端口映射和容器互相访问

    端口映射 容器运行时如果没有指定端口,与外界是无法通信的,比如当前我们的有一台MySQL的docker container,当前容器正在运行mysql并提供3306端口 # docker ps CON ...

  5. 实现Docker跨主机间的容器网络联通

    Server1(Server) 192.168.81.58 内核版本 3.10.0-123.el7.x86_64 Docker版本 1.12.6Server2(Agent)  192.168.81.5 ...

  6. 使用Docker的macvlan为容器提供桥接网络及跨主机通讯

    对于了解Docker容器网络的朋友,我想对虚拟机的网络也不会陌生,毕竟我们是跟随这个时代一起学习和进步的人.相比VM,Docker的网络也在逐步走向成熟,本文主要针对其中的macvlan做下简单的介绍 ...

  7. centos7下安装docker(15.7容器跨主机网络---calico)

    Calico是一个纯三层的虚拟网络方案,Calico为每个容器分配一个IP,每个host都是router,把不同host的容器连接起来.与vxlan不同的是:calico不对数据包进行封装,不需要NA ...

  8. centos7下安装docker(15.5容器跨主机网络--flanneld)

    flannel是由CoreOS研究的一种覆盖网络(overlay network)网络工具,目的是帮助每一个host主机有一个完整的子网: 功能是:让集群中不同节点的主机创建的容器都有一个唯一的虚拟I ...

  9. Docker容器相互访问

    原文地址:https://blog.csdn.net/subfate/article/details/81396532?utm_source=copy 很多时候,同一台机器上,需要运行多个docker ...

随机推荐

  1. [Spring]支持注解的Spring调度器

    概述 如果想在Spring中使用任务调度功能,除了集成调度框架Quartz这种方式,也可以使用Spring自己的调度任务框架. 使用Spring的调度框架,优点是:支持注解(@Scheduler),可 ...

  2. 深入理解脚本化CSS系列第二篇——查询计算样式

    × 目录 [1]getComputedStyle [2]注意事项 [3]currentStyle[4]IE 前面的话 元素的渲染结果是多个CSS样式博弈后的最终结果,这也是CSS中的C(cascade ...

  3. Devexpress GridControl.Export

    private void mnuExportTable_ItemClick_1(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { u ...

  4. 阅读微信支付demo收获

       1,公司现有系统有很多,存放重要接口的日志分布在不同的库,每个系统都有单独的日志采集表,日志采集模块:        ????         这些日志可以统一放到一个地方,通过一个组件提供出去 ...

  5. LinQ to SQL用法详解

    LinQ是指集成化查询语言,通过映射将数据库内的表名变为C#的类名,将列名作为属性名,将表的关系作为类的成员对象.O--M--R O-Object对象(李昌辉)R-Relation关系M-Mappin ...

  6. WebService 概念和工作原理(一)

    今天我们一起来学习WebService.它到底是干啥用的? Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集) ...

  7. Atitit ftp原理与解决方案

    Atitit ftp原理与解决方案 Deodeo sh shmayama ..search ftp.. 1. http和ftp都只是通信协议,就是只管传输那一块的,那为什么不能使用ftp来显示网页?? ...

  8. iOS:frame访问、设置简化

    看到一些程序都有这种写法,也不知道原创者是谁了.先在博客保存下. 在.m文件 #import "UIView+MyFrameCategory.h" @implementation ...

  9. ContentProvider中央档案馆,以及获取联系人电话的示例

    Android官方文档介绍的数据存储方式共有五种,sqlite,SharedPreferences,网络存储,外储存储,文件存储,但是这些数据都无法进行共享,那么我们就引入了今天的主角:Content ...

  10. Android开发案例 - 注册登录

    本文只涉及UI方面的内容, 如果您是希望了解非UI方面的访客, 请跳过此文. 在微博, 微信等App的注册登录过程中有这样的交互场景(如下图): 打开登录界面 在登录界面中, 点击注册, 跳转到注册界 ...