12.2. systemd なしでの DHCP プラグイン実行
ユーザー定義のネットワークに接続するには、Podman run --network
コマンドを使用します。ほとんどのコンテナーイメージには DHCP クライアントがありませんが、dhcp
プラグインは、コンテナーが DHCP サーバーを操作するためのプロキシー DHCP クライアントとして機能します。
注記
この手順は、ルートフルコンテナーにのみ適用されます。ルートレスコンテナーでは、dhcp
プラグインは使用されません。
前提条件
-
container-tools
モジュールがインストールされている。
手順
dhcp
プラグインを手動で実行します。# /usr/libexec/cni/dhcp daemon & [1] 4966
dhcp
プラグインが動作していることを確認します。# ps -a | grep dhcp 4966 pts/1 00:00:00 dhcp
alpine
コンテナーを実行します。# podman run -it --rm --network=example alpine ip addr show enp1s0 Resolved "alpine" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf) Trying to pull docker.io/library/alpine:latest... ... Storing signatures 2: eth0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether f6:dd:1b:a7:9b:92 brd ff:ff:ff:ff:ff:ff inet 192.168.1.22/24 brd 192.168.1.255 scope global eth0 ...
この例では、以下が適用されます。
-
network=example
オプションは、接続するネットワークを example という名前で指定します。 -
alpine
コンテナーでip addr show enp1s0
コマンドを実行すると、ネットワークインターフェイスenp1s0
の IP アドレスを確認します。 - ホストネットワークは 192.168.1.0/24 です。
-
eth0
インターフェイスは、alpine コンテナー用に 192.168.1.122 の IP アドレスをリースしています。
-
注記
この設定では、有効期限の短いコンテナーとリースの長い DHCP サーバーが多数ある場合に、利用可能な DHCP アドレスが枯渇する可能性があります。