Linux docker的网络独立IP的配置(pipework实现方式)
docker一个镜像作为容器启动后,通常会在宿主机同时生成一个名称为docker0的虚拟网卡,该网卡作为桥接网卡与外界通信(默认为桥接模式),当然也有net模式可选。那么如果docker启动的容器很多,需要网络隔离成很多块区域,那么仅仅只有容器和外界之间互相通信,而容器与容器之间无法正常通信了(都已经隔离了,路由网段都不一样了,容器之间怎么可能通信?),因此,我们需要自定义其中的一部分容器,从而达到控制某些容器与需要通信的容器通信。
配置独立的自定义的IP的方法如下:
宿主机的网卡配置文件复制一份,原文件有关IP的字段全部删除,剩下的保留。修改复制的文件,改名为br0,赋予IP,重启网络服务。
以我的主机的实际配置,网卡名称为ens33,复制该网卡配置文件并改名为br0,命令如下:
cd /etc/sysconfig/network-scripts/
cp -a ifcfg-ens33 ifcfg-br0
vim ifcfg-ens33 #内容如下:
TYPE="Ethernet"
BOOTPROTO="static"
BRIDGE=br0
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
PREFIX="24"
vim ifcfg-br0 #文件内容如下
TYPE=bridge
BOOTPROTO="static"
DEVICE="br0"
ONBOOT="yes"
IPADDR="192.168.0.19"
NETMASK=255.255.255.0
GATEWAY="192.168.0.1"
DNS1="61.128.114.166"
重启网络服务
systemctl restart network
下载pipework,
git clone https://github.com/jpetazzo/pipework.git
sudo cp pipework/pipework /usr/local/bin/
docker run -itd --name con1 --net=none ubuntu:14.04 bash
注意了,这时候容器启动的时候添加了 --net=none 。
pipework br0 con1 192.168.0.23/24
这个时候容器 con1 就有了一个独立的IP了。
标签:容器,IP,pipework,br0,网卡,Linux,ens33 From: https://blog.51cto.com/u_15966109/6082665