linux overlay网络,docker的overlay网络---Docker native overlay network

从docker-1.9版本后,docker本身支持overlay网络,本节就是在docker的native

overlay做的试验。首先,保证安装的docker的版本是1.9以上的版本信息,

这里的VM1: 10.10.185.95

VM2:10.10.93.222

0)在使用overlay网络需要key-value键值对

所以在启用的时,启用etcd

在VM1:

#!/bin/bash

./etcd

-name infra1 -initial-advertise-peer-urls

-listen-peer-urls \

-listen-client-urls

-advertise-client-urls

\

-initial-cluster-token

etcd-cluster-1  \

-initial-cluster

infra0=http://10.10.72.11:2380,infra1=,infra2=

\

-initial-cluster-state new

启动docker daemon:

docker daemon

--cluster-advertise=10.10.185.95:2376 --cluster-store

etcd://10.10.185.95:2379,10.10.93.222:2379

在VM2:启动etcd

#!/bin/bash

./etcd

-name infra2 -initial-advertise-peer-urls

-listen-peer-urls \

-listen-client-urls

-advertise-client-urls

\

-initial-cluster-token

etcd-cluster-1  \

-initial-cluster

infra0=http://10.10.72.11:2380,infra1=,infra2=

\

-initial-cluster-state new

启动docker:

docker daemon

--cluster-advertise=10.10.93.222:2376 --cluster-store

etcd://10.10.185.95:2379,10.10.93.222:2379

1)docker-1.9版本中增加了network的命令,可以使用下面的命令创建一个overlay的网络,网络的命令是bar

docker network create -d overlay bar

9422b932b374c48621daeb2f9775c168f6062132003e5c570fc1a2338bcca0a3

使用docker network

ls可以查看网络信息

0fb791d739a18bcb691787f5e92e5a62.png

26347c1e71b9827a746696495e59c27a.png

2) 创建Container

使用下面的命令run一个container,这里指定了—net为我们刚才创建的网络名字。

docker run -it --net=bar --name=vm1

frankzfz/centos6.3-base-v1  /bin/bash

在Container内部可以看到生成了两个网卡,eth0和eth1.

240217be6194b7866bbbec99085bdf9a.png

69dbc32c770e4a49a3402fe3a7f72792.png

在Container内部可以看到eth1和eth0接口的IP地址,eth1: 172.18.0.3 eth0: 10.0.0.2,这里的eth1是Docker中数据走NAT,eth0是两个不同host的Container进行通信使用。

在宿主机上可以看到docker_gwbridge桥接口地址,该地址的IP地址172.18.0.1,类似于Docker0,这可以通过iptables表可以看出。

a478e11aed5d829097e97bea74a6b71a.png

3)Overlay网络创建了独立的net namespace

ls

/var/run/docker/netns

1-9422b932b3  26f6ec5d9454

6ca34db04d26

其中1-9422b932b3是使用overlay创建的net namespace

mkdir

/var/run/netns

ln -s

/var/run/docker/netns/1-9422b932b3 /var/run/netns/1-9422b932b3

ip net list

78010956b2caf2d06d6e0b920dadf097.png

3)在VM2上docker run -ti --net=bar --name=vm2 frankzfz/centos6.3-base-v1

/bin/bash

在Container内部,

0afde421584f4ea99054b4150e33d85a.png

可以直接Ping Vm1上的Container

cd9611bfcb785aa2c1bad418ef813371.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值