在谷歌搜索,只有添加新网络接口的方法是添加到配置文件。是否有任何lxc命令可以添加生动,(不需要重启容器)?
该页面提到了如何添加第二个网络接口:http://box.matto.nl/lxctwonics.html
谢谢!
答案 0 :(得分:16)
这在很大程度上取决于您尝试添加到容器中的界面的配置。
如果主机上有现有界面,您希望在容器内可见:
# on the host:
pid=$(lxc-info -pHn foobar)
ip link set dev eth3 netns $pid name eth1
这会导致您的主机eth3
界面移至容器foobar
,并重命名为eth1
。这与此配置大致相同:
lxc.network.type=phys
lxc.network.link=eth3
lxc.network.name=eth1
另一个有用的方案是在容器内创建一个新接口,桥接到主机上的现有网桥:
# 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
这将创建一对连接的虚拟以太网接口(veth0
和veth0_container
),将其中一个添加到br0
网桥,并将另一个移动到容器{{ 1}}。这与此配置大致相同:
foobar
答案 1 :(得分:1)
线程非常有帮助,但我必须设置创建的链接以使容器访问网络:
之前:(ip link)
$
设置链接:
11: veth0@if10: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master vmbr0 state DOWN mode DEFAULT group default qlen 1000
link/ether 42:f1:f9:5a:5c:ae brd ff:ff:ff:ff:ff:ff link-netnsid 1
之后:(ip link)
ip link set dev veth0 up
答案 2 :(得分:0)
就像@Leahkim一样,我也必须启动设备,但是还要从容器内分配一个静态IP:
ifconfig veth0 add 192.168.18.2 netmask 255.255.255.0 up
此时您可能还可以使用dhcp客户端,但这对我来说不可用。