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

第二部分: 使用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/24@192.168.60.2
查看容器IP信息
docker exec gracious_bassi ip add
配置的IP出现了容器内部。

B只通过手工配置容器的IP
docker run -td --net=none busybox
pipework br0 affectionate_shockley 192.168.60.203/24@192.168.60.2
验证

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值