ネットワーク アクセスが必要な 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 アドレスがあることは表示されません。bride は起動しており、構成ファイルで 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
これがファイルを作成するより良い方法だと思いました。