Docker-使用Open vSwitch实现跨主机容器连接-原理
机器1上(2.9)
root@ubuntu:~# clear
root@ubuntu:~# ifconfig
安装ovs
root@ubuntu:~# apt-get install openvswitch-switch -y
查看ovs版本
root@ubuntu:~# ovs-vsctl show
f2d4be61-bf3b-4c47-8d81-21c6bf0c60bc
ovs_version: "2.0.2"
root@ubuntu:~#
创建一个ovs网桥
root@ubuntu:~# ovs-vsctl add-br obr0
#添加gre接口gre0
root@ubuntu:~# ovs-vsctl add-port obr0 gre0
#设置这个接口gre0,指定远程机器IP地址
root@ubuntu:~# ovs-vsctl set interface gre0 type=gre options:remote_ip=192.168.2.10
查看ovs当前设置状态
root@ubuntu:~#ovs-vsctl show
f2d4be61-bf3b-4c47-8d81-21c6bf0c60bc
Bridge"obr0"
Port"obr0"
Interface "obr0"
type: internal
Port"gre0"
Interface "gre0"
type: gre
options: {remote_ip="192.168.2.10"}
ovs_version: "2.0.2"
root@ubuntu:~#
创建本机docker需要使用的虚拟网桥
root@ubuntu:~# brctl addbr br00
#给网桥br00设置网络地址
root@ubuntu:~# ifconfig br00 192.168.10.1 netmask 255.255.255.0
#给网桥br00,添加ovs网桥链接obr0
root@ubuntu:~#brctl addif br00 obr0
#查看当前网桥的状态
root@ubuntu:~#brctl show
bridge name bridgeid STP enabled interfaces
br00 8000.8a262fb3da4c no obr0
修改docker的默认网桥
root@ubuntu:~# vim /etc/default/docker
root@ubuntu:~#cat /etc/default/docker
DOCKER_OPTS="-b=br00"
root@ubuntu:~#
重启docker服务
root@ubuntu:~#service docker restart
root@ubuntu:~# ps -ef|grep docker
root 41934 1 2 00:59 ? 00:00:00 /usr/bin/docker -d -b=br00
root 41986 40812 0 00:59 pts/2 00:00:00 grep --color=auto docker
root@ubuntu:~# ifconfig
br00 Link encap:Ethernet HWaddr52:49:5c:4e:68:55
inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::9cf6:18ff:fed4:99e7/64 Scope:Link
UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXpackets:56 errors:0 dropped:0 overruns:0 frame:0
TXpackets:77 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RXbytes:3857 (3.8 KB) TX bytes:10370 (10.3KB)
eth0 Link encap:Ethernet HWaddr00:0c:29:d7:5c:be
inet addr:192.168.2.9 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed7:5cbe/64 Scope:Link
UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXpackets:6561 errors:0 dropped:0 overruns:0 frame:0
TXpackets:2681 errors:0 dropped:0 overruns:0 carrier:0