我有几个需要网络访问的 lxc 容器。目前,我正在相关配置文件中手动为它们分配 IP 地址,如下所示:
lxc.network.type = veth
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.link = br0
lxc.network.ipv4 = 192.168.1.6/24
lxc.network.ipv4.gateway = 192.168.1.1
这可以工作,但无法扩展,并且可能与我的路由器 DHCP 分配发生冲突。我尝试通过省略 lxc.network.ipv4 行(如其他地方在线描述)来使用我的路由器 dhcp,并且容器启动,但 dhcpcd 报告没有运营商。 lxc-ls --fancy 也不显示我的容器有 IP 地址。新娘已启动,并且在配置文件中设置了 lxc.network.link。
如何在我的容器中使用 DHCP?是否可以使用我的路由器 DHCP,或者我是否需要在我的主机上运行服务器?我的一些容器确实需要从外部访问,而有些容器只需要与其他容器/主机通信。
我运行的是 arch linux,大多数在线帮助似乎都是针对 ubuntu 的。
答案1
确保 netctl 和 dhcpcd 安装在容器内 (pacman -Q netctl dhcpcd),然后在容器中运行以下命令:
cat > /etc/netctl/eth0
Connection=ethernet
IP=dhcp
Interface=eth0
按 CTRL-D 写入文件。然后通过运行以下命令启用配置文件:
netctl enable eth0
最后重新启动容器,您应该拥有 DHCP 分配的 IP 地址。
答案2
cat <<\EOF >> /etc/netctl/eth
Connection=ethernet
IP=dhcp
Interface=eth0
EOF
我认为这将是创建文件的更好方法。