2.5 docker配置桥接网络(上):
为了使本地网络中的机器和Docker 容器更方便的通信,我们经常会有将Docker容器
配置到和主机同一网段的需求。 这个需求其实很容器实现, 我们只需要将Docker容器个I
和宿主机的网卡桥接起来,在给Docker容器配置IP就可以了。
docker:/root# /sbin/ifconfig -a
docker0 Link encap:Ethernet HWaddr 82:1A:3F:70:76:A5
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::dcbe:d9ff:fe62:d7e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7890 errors:0 dropped:0 overruns:0 frame:0
TX packets:9934 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:404433 (394.9 KiB) TX bytes:46463810 (44.3 MiB)
eth2 Link encap:Ethernet HWaddr 00:0C:29:6E:56:02
inet addr:192.168.32.151 Bcast:192.168.32.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6e:5602/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:118661 errors:0 dropped:0 overruns:0 frame:0
TX packets:13615 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:83659673 (79.7 MiB) TX bytes:1304647 (1.2 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:200 (200.0 b) TX bytes:200 (200.0 b)
veth02c9b44 Link encap:Ethernet HWaddr DE:2C:35:EE:F2:46
inet6 addr: fe80::dc2c:35ff:feee:f246/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2127 errors:0 dropped:0 overruns:0 frame:0
TX packets:2612 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:137978 (134.7 KiB) TX bytes:10935963 (10.4 MiB)
veth5e18f22 Link encap:Ethernet HWaddr 82:1A:3F:70:76:A5
inet6 addr: fe80::801a:3fff:fe70:76a5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4798 errors:0 dropped:0 overruns:0 frame:0
TX packets:6392 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:317572 (310.1 KiB) TX bytes:27126952 (25.8 MiB)
veth302ae23 Link encap:Ethernet HWaddr 8E:35:47:57:27:1A
inet6 addr: fe80::8c35:47ff:fe57:271a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:949 errors:0 dropped:0 overruns:0 frame:0
TX packets:1004 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:57991 (56.6 KiB) TX bytes:8406459 (8.0 MiB)
veth3818003 Link encap:Ethernet HWaddr BA:E9:58:5C:09:57
inet6 addr: fe80::b8e9:58ff:fe5c:957/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:558 (558.0 b) TX bytes:1226 (1.1 KiB)
开启一个容器,都会生成一个 vethxx的网卡
docker:/etc/sysconfig/network-scripts# pwd
/etc/sysconfig/network-scripts
cp ifcfg-etho ifcfg-br0
配置:
docker:/etc/sysconfig/network-scripts# cat ifcfg-eth0
DEVICE=eth2
TYPE=Ethernet
UUID=ac880d1b-2e37-425b-a58e-2a1e4625255c
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0
#IPADDR=192.168.32.151
#NETMASK=255.255.255.0
#GATEWAY=192.168.32.254
docker:/etc/sysconfig/network-scripts# cat ifcfg-bro
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.32.151
NETMASK=255.255.255.0
GATEWAY=192.168.32.254
docker:/etc/sysconfig/network-scripts# /sbin/ifconfig -a
br0 Link encap:Ethernet HWaddr 00:0C:29:6E:56:02
inet addr:192.168.32.151 Bcast:192.168.32.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6e:5602/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:585 errors:0 dropped:0 overruns:0 frame:0
TX packets:119 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:34193 (33.3 KiB) TX bytes:14755 (14.4 KiB)
docker0 Link encap:Ethernet HWaddr 82:1A:3F:70:76:A5
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::dcbe:d9ff:fe62:d7e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7890 errors:0 dropped:0 overruns:0 frame:0
TX packets:9934 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:404433 (394.9 KiB) TX bytes:46463810 (44.3 MiB)
eth2 Link encap:Ethernet HWaddr 00:0C:29:6E:56:02
inet6 addr: fe80::20c:29ff:fe6e:5602/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:588 errors:0 dropped:0 overruns:0 frame:0
TX packets:125 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:42563 (41.5 KiB) TX bytes:15263 (14.9 KiB)
安装pipwork:
git clone https://github.com/jpetazzo/pipework
docker:/root# cp pipework/pipework /usr/local/bin/
开启一个容器:
docker run -itd --net=none --name centos_test01 centos bash
rpm -Uvh https://repos.fedorapeople.org/openstack/EOL/openstack-grizzly/epel-6/iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm
pipework bro 容器名 192.168.32.152/24@192.168.32.254
跟br0 同网段的IP