容器网络--为docker容器添加网络接口

一 背景

    默认情况下容器启动后只有一个网络接口,一般外围为eth0,且其IP地址已经提前分配。有时候我们希望为一个容器创建多个网络接口,此时可以尝试如下的方式。

二  为容器添加网络接口

  1 以默认的网络方式运行一个容器

# docker run --name tst_add_inf -it tst_img /bin/bash

    这样,我们就通过宿主机器上的镜像tst_img创建了一个名字为tst_add_inf的容器,此容器默认已经创建了一个网络接口eth0。

  2  获取容器的PID

# docker inspect -f '{{.State.Pid}}' tst_add_inf

   上面获取到容器的PID即为容器1号进程在宿主机器命名空间的进程PID。

  3 为容器添加网络接口eth1

  (1) 创建一对 veth peer设备

# ip link add veth0 type veth peer name veth1 

    创建好后可以通过" ip link list"看到刚创建的两个设备。

  (2) 将veth一端添加到网桥

# brctl addif docker0  veth0
# ip link set veth0 up 

  (3) 将veth另一端与容器关联

# ln -s /proc/$pid/ns/net /var/run/netns/$container_id
# ip link set veth1 netns $pid

  (4) 配置容器新添加的网络接口

    将新接口更名为eth1并修改其IP地址。

# ip netns exec $pid ip link set dev veth1 name eth1
# ip netns exec $pid lp link set eth1 up
# ip netns exec $pid ip addr add $container_ipaddr/$netmask dev eth1
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值