我有幾個需要網路存取的 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
我認為這將是創建文件的更好方法。