Docker 网络管理 – 配置桥接网络(centos7)

为了使本地网络中的机器和Docker容器更方便的通信,我们经常会有将Docker容器配置到和主机同一网段的需求。这个需求其实很容易实现,我们只要将Docker容器和宿主机的网卡桥接起来,再给Docker容器配上IP就可以了。

* 安装pipwork  #docker官方人员,shell写的一个脚本

git clone https://github.com/jpetazzo/pipework

cp ~/pipework/pipework /usr/local/bin/

没有git命令 yum install git

* 开启一个容器 docker run -itd --net=none --name wyp123 centos  /bin/bash

pipework br0  wyp123 172.7.15.201/24@172.7.15.107  #201为容器的ip,@后面的ip为宿主机ip,生成一个网卡。

brctl addif br0 eth0  #eth0为宿主机网卡,这一步为把br0和eth0桥接起来

ip addr add 172.7.15.107/24 br0 #把107的ip绑定在br0上

docker exec -it wyp123 /bin/bash #进去后ifconfig查看就可以看到新添加的ip

Docker 网络管理 – 配置桥接网络(centos6)

cd /etc/sysconfig/network-scripts/; cp ifcfg-eth0  ifcfg-br0

vi ifcfg-eth0 //增加BRIDGE=br0,BOOTPROTO=none,删除IPADDR,NETMASK,GATEWAY,DNS1

vi ifcfg-br0//修改DEVICE为br0,Type为Bridge,把eth0的网络设置设置到这里来

service network restart

安装pipwork:  

git clone https://github.com/jpetazzo/pipework; 

cp ~/pipework/pipework /usr/local/bin/  #为了方便执行命令,因为路径在$PATH内

开启一个容器: docker run -itd --net=none --name wyp123 centos  /bin/bash

升级包iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm,否则会报错。

rpm -Uvh https://repos.fedorapeople.org/openstack/EOL/openstack-grizzly/epel-6/iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm #不安会报错Object "netns" is unknown, try "ip help"

pipework br0  wyp123 172.7.15.201/24  #配置IP

docker exec -it wyp123 /bin/bash #进去后ifconfig查看就可以看到新添加的ip