docker+pipework配置容器网络(二)

版权声明:欢迎带走,但请留下出处.............. https://blog.csdn.net/kevin3101/article/details/79487100
第二部分: 使用pipework为容器配置宿主机物理网络的地址
1. 安装pipework
yum install git -y
cd pipework
cp pipework /usr/bin/

2.pipework介绍
pipework是一个软件定义网络的工具,用来在任何复杂的场景下连接到容器。pipework基于cgroup和namespace, 同时支持Docker和lxc创建的容器
最简单的使用命令:
pipework br_name container_name ip/netmask@vlan(gateway)

[root@localhost pipework]# pipework --help
Syntax:
pipework <hostinterface> [-i containerinterface] [-l localinterfacename] [-a addressfamily] <guest> <ipaddr>/<subnet>[@default_gateway] [macaddr][@vlan]
pipework <hostinterface> [-i containerinterface] [-l localinterfacename] <guest> dhcp [macaddr][@vlan]
pipework route <guest> <route_command>
pipework rule <guest> <rule_command>
pipework tc <guest> <tc_command>
pipework --wait [-i containerinterface]

3.pipework配置
pipework需要与linux本身的网桥结合使用,先手动配置宿主机的网桥
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-br0
修改ifcfg-ens33 和ifcfg-br0文件,如下:
增加BRIDGE=br0并注掉IP配置信息
修改TYPE及NAME等项,如上图所示,重启网络
systemctl restart network
查看网络信息,出现刚才配置的br0刚网桥配置成功。

4.创建一个容器,并配置独立IP
A创建一个容器拥有两种网卡,一个是docker默认分配的,一个是通过pipework手动配置的
docker run -td busybox /bin/sh
给容器分配一个IP
pipework br0 gracious_bassi 192.168.60.202/[email protected]
查看容器IP信息
docker exec gracious_bassi ip add
配置的IP出现了容器内部。

B只通过手工配置容器的IP
docker run -td --net=none busybox
pipework br0 affectionate_shockley 192.168.60.203/[email protected]
验证

从外部ping 192.168.60.203
至此通过pipework实现给docker容器配置物理网段的IP成功。
pipework指定的IP在宿主机重启后会全部丢失,需要再重新配置,所以为了保证宿主重启后容器的IP不丢失,可以考虑将pipework命令加入到rc.local中实现开机时自动执行。

猜你喜欢

转载自blog.csdn.net/kevin3101/article/details/79487100
今日推荐