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