LXC - Linux容器 - 无需重新启动即可添加新的网络接口

Dia*_*ond 8 lxc

在谷歌搜索,只有添加新网络接口的方法是添加到配置文件.是否有任何lxc命令可以添加生动,(不需要重启容器)?

该页面提到了如何添加第二个网络接口:http://box.matto.nl/lxctwonics.html

谢谢!

lan*_*nzz 16

它很大程度上取决于您尝试添加到容器的接口的配置.

如果主机上有现有界面,您希望在容器中可见:

# on the host:
pid=$(lxc-info -pHn foobar)
ip link set dev eth3 netns $pid name eth1
Run Code Online (Sandbox Code Playgroud)

这将导致主机的eth3界面被移动到容器foobar,重命名为eth1.这与此配置大致相同:

lxc.network.type=phys
lxc.network.link=eth3
lxc.network.name=eth1
Run Code Online (Sandbox Code Playgroud)

另一个有用的方案是在容器内创建一个新接口,桥接到主机上的现有网桥:

# on the host:
pid=$(lxc-info -pHn foobar)
ip link add name veth0 type veth peer name veth0_container
brctl addif br0 veth0
ip link set dev veth0_container netns $pid name veth0
Run Code Online (Sandbox Code Playgroud)

这将创建一对连接的虚拟以太网接口(veth0veth0_container),将其中一个添加到br0网桥,并将另一个移动到容器中foobar.这与此配置大致相同:

lxc.network.type=veth
lxc.network.link=br0
lxc.network.name=veth0
Run Code Online (Sandbox Code Playgroud)