测试服务器(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]03_装配Bean

    3.1 JavaBean 3.1.1 JavaBean 是什么 JavaBean 是一种JAVA语言写成的可重用组件. 为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器. Jav ...

  2. 学习javascript数据结构(一)——栈和队列

    前言 只要你不计较得失,人生还有什么不能想法子克服的. 原文地址:学习javascript数据结构(一)--栈和队列 博主博客地址:Damonare的个人博客 几乎所有的编程语言都原生支持数组类型,因 ...

  3. HTML基础标签

    [HTML写法标签][HTML字体段落标签][锚点][有序无序列表][表格] 一.HTML写法标签:双标签:<标签名>内容</标签名>单标签:<标签名 内容/> 二 ...

  4. 【无私分享:ASP.NET CORE 项目实战(第七章)】文件操作 FileHelper

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在程序设计中,我们很多情况下,会用到对文件的操作,在 上一个系列 中,我们有很多文件基本操作的示例,在Core中有一些改变,主 ...

  5. 【无私分享:ASP.NET CORE 项目实战(第三章)】EntityFramework下领域驱动设计的应用

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在我们 [无私分享:从入门到精通ASP.NET MVC] 系列中,我们其实也是有DDD思想的,但是没有完全的去实现,因为并不是 ...

  6. xcode中的.h和.m文件分别是什么意思?各有什么用?

    .h 表示头文件,用来声明各种成员变量,方法,属性之类的.在import的时候用头文件. .m 主要用来实现.h 里声明的方法.举个例子,如果要写一个方法,你要在.h里先声明: - (void)myM ...

  7. Qt 中使用Singleton模式需小心

    在qt中,使用Singleton模式时一定要小心.因为Singleton模式中使用的是静态对象,静态对象是直到程序结束才被释放的,然而,一旦把该静态对象纳入了Qt的父子对象体系,就会导致不明确的行为. ...

  8. SVG动画

    动画原理 SVG动画,就是元素的属性值关于时间的变化. 如下图来说,元素的某个属性值的起始值(from)到结束值(to)在一个时间段(duration)根据时间函数(timing-function)计 ...

  9. FineReport制作可动态展开的组织递归树报表

    先看看效果: 报表软件:FineReport 1.分析-与正常查询的对比 如果不做这种树状结构展开的报表的话,正常的SQL应该是这样写的,以单据表为例,假设单据的机构为分公司,经营部 select 分 ...

  10. Java 相关书籍

    Effective Java 中文第二版: Java并发编程实践: Java核心技术(原书第8版)卷I_基础知识: Java核心技术(原书第8版)卷II_高级特性: 深入理解Java虚拟机 JVM高级 ...