docker添加多网卡的方法

时间:2022-06-26 12:41:41

1. 清除物理网卡ip地址(192.168.1.22),使其工作在链路层接收所有数据包

?
1
2
ip addr del 192.168.1.22/24 dev eth0
ip addr add 0.0.0.0 dev eth0

2. 创建网桥br0并把接口eth0加入br0

?
1
2
3
ip link add br0 type bridge   # ip link delete br0
ip link set br0 up            # ip link set br0 down
ip link set eth0 master br0   # ip link set eth0 nomaster

3. 启动容器

?
1
docker run -it --name testns centos

容器启动后已经配置了一块网卡eth0

结下了我们用ip命令向容器添加另一块网卡

4. 为ip netns准备环境(参考 man ip-netns):

?
1
2
nspid=$(docker inspect -f '{{.State.Pid}}' testns)
ln -s /proc/${nspid}/ns/net /var/run/netns/${nspid}

5. 创建一对网口tt0和tt1

?
1
ip link add tt0 type veth peer name tt1

或者直接ip link add type veth peer创建veth0,veth1

6. 添加一网口至br0

?
1
2
ip link set dev tt1 master br0
ip link set dev tt1 up

7. 添加另外一网口至容器 testns , 并命名为eth1配置ip

?
1
2
3
4
ip link set dev tt0 name eth1 netns ${nspid}
ip netns exec ${nspid} ip link set dev eth1 up
ip netns exec ${nspid} ip addr add 10.65.120.48/16 dev eth1
ip netns exec ${nspid} ip addr add 10.65.120.49/16 label eth1:1 dev eth1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/cenziboy/article/details/46315355