docker学习(七)docker容器的跨主机连接

docker容器的跨主机连接

使用网桥实现跨主机容器连接

1、准备环境
a、两台虚拟机
b、安装网桥管理工具

sudo apt-get install bridge-utils

c、IP地址:

Host1:10.211.55.3
Host2:10.211.55.5

2、修改网路配置文件/etc/network/interfaces

auto br0
iface br0 inet static
address 10.211.55.3
netmask 255.255.255.0
gateway 10.211.55.1
bridge_ports eth0

这里命令指定了我们要建立网桥的名称,IP分配的方式,子网掩码,默认的网关,以及指定了将物理网卡连接到指定网桥上。
3、修改/etc/default/docker文件

指定两个配置选项
-b 指定使用自定义网桥

-b=br0

--fixed-cidr 限制ip地址分配范围

ip划分为:
Host1:10.211.55.64/26
地址范围:10.211.55.65~10.211.55.126
Host2:10.211.55.128/26
地址范围:10.211.55.129~10.211.55.190

例子:

DOCKER_OPTS=" -b=br0 --fixed-cidr=10.211.55.64/26"

4、重启系统

$reboot

5、查看ifconfig

$IFCONFIG

6、查看docker启动选项

ps -ef | grep docker

优点

配置简单,不依赖第三方软件

缺点

与主机在同意网段,需要小心的分配ip
需要有网段控制权,在生产环境中不容器实现
不容易管理(如果用vmwar等虚拟机难以实现这样的网络基础设定)
兼容性不佳

使用Open vSwitch实现跨主机容器连接

Open vSwitch是一个开源的虚拟的交换机软件,实际上Open vSwitch是一个高质量的、多层虚拟交换机,使用开源Apache2.0许可协议,由Nicira Networks开发,主要实现代码为可移植的c代码。他的目的是让大规模网络自动化可以通过变成扩展,同时仍然支持标准的管理接口和协议(例如:NetFlow,sFlow,SPAN,RSPAN,CLI.802.1ag)

GRE隧道

ERE:通用路由协议封装

隧道技术:是一种通过使用互联网的基础设施在网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然互通过隧道发送。新的帧头提供路由信息,以便通过互联网传递被封装的负载数据。

环境装备:

a.安装Open vSwitch

sudo apt-get install openvswitch-switch

b.安装网桥

sudo apt-get install bridge-utils

c.IP地址

Host1:192.168.59.103
Host2:192.168.59.104

操作:

1、查看ovs的状态

$sudo ovs-vsctl show

2、建立ovs网桥

$sudo ovs-vsctl add-br obr0(网桥名称)

3、添加GRE接口

$sudo ovs-vsctl add-port obr0 gre0(gre名字)

4、设置GRE接口

$sudo ovs-vsctl set interface gre0(gre名字) type=gre option:remote_ip=192.168.59.104(指定我们需要连接的远程服务器的地址,也就是我们索要连接的另一台虚拟机的地址)

5、查看ovs设置的状态

$sudo ovs-vsctl show

6、建立本机docker容器需要使用的虚拟网桥

$sudo brctl addbr br0(网桥名称)

7、为br0设置网络地址

$sudo ifconfig br0 192.168.1.1 netmask 255.255.255.0

8、为br0网桥添加ovs网桥的连接

$sudo brctl addif br0 obr0

9、查看ovs设置的状态

$sudo ovs-vsctl show

10、配置docker用我们新建的网桥来配置dcoker0

DOCKER_OPTS=" -b=br0"

11、重启docker服务

$sudo service docker restart

12、创建一个容器

$ping另一台主机可以ping通,却ping不通另一个主机的里的容器

这是因为对于不通网段来说,我们需要通过路由表来确定不通网段网络的地址
13、查看当前的路由表

$route

14、添加容器使用网段路由信息

$sudo ip route add 192.168.2.0/24(网段的名) via 192.168.59.104(告诉路由器查找网段的地址) dev eth0(指定查找设备,通过本机的eth0网卡)

总结:比网桥连接复杂些,但是能够有效的跨越网络中的障碍来实现网络中容器之间的连接。虽然复杂,但是可以将操作写成脚本将操作自动化。

使用weave工具实现跨主机容器连接

weave:开源的。建立一个虚拟的网络,用于将运行在不同主机的docker容器连接起来。

环境准备

IP地址
Host1:192.168.59.103
Host2:192.168.59.104

操作:

1、下载veave

$sudo wget -o /usr/bin/ewave https://raw.githubusercontent.com/zettio/weave/master/weave

通过gethub网址下载veave并且保存在本地/usr/bin/ewave文件夹下
2、更改veave文件夹的模式,让他可以执行

$sudo chmod a+x /usr/bin/ewave

这样veave就可以使用了
3、启动veave

$veave launch

在启动veave时,实际上会在docker上运行一个veave的容器。
4、配dockerhost2
5、dockerHost2中运行

$veave launch 192.168.59.103

这时和第一个不一样,要将dockerHost1的IP地址传入,这是为了使两个dickerhost能够正确的连接在一起。
6、在dockerHost2使用veavw创建一个容器

$c2=$(veave launch 192.168.1.2/24(这个IP地址就是在将要启动的容器中分配的IP地址,这个IP就是veave来维护的) -it ubuntu /bin/bash)

7、在dockerHost1使用veavw创建一个容器

veave launch 192.168.1.10/24 -it --name wec1 ubuntu /bin/bash

8、这时ping另一个容器就很容易ping通了

总结:使用veave工具非常容易的为docker容器指定一个我们任意希望分配的IP地址,并且非常方便来划分IP地址段,从而将不同主机的容器划分在不通的网段中。
不但可以实现跨主机的容器连接,而且非常方便的来限定跨主机的方式运用什么样的方式来连接,

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容