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

11720阅读 0评论2017-06-20 frankzfz
分类:云计算

docker-1.9版本后,docker本身支持overlay网络,本节就是在dockernative overlay做的试验。首先,保证安装的docker的版本是1.9以上的版本信息,

这里的VM1: 10.10.185.95 VM210.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可以查看网络信息



2) 创建Container

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

docker run -it --net=bar --name=vm1 frankzfz/centos6.3-base-v1  /bin/bash

 Container内部可以看到生成了两个网卡,eth0eth1.



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

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


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


3) VM2

docker run -ti --net=bar --name=vm2 frankzfz/centos6.3-base-v1 /bin/bash

Container内部,


可以直接Ping Vm1上的Container


上一篇:TCP接收窗口--确定Window Scaling
下一篇:ipvlan内核代码流程