12.2. 在没有 systemd 的情况下运行 DHCP 插件
使用 podman run --network
命令连接到用户定义的网络。虽然大多数容器镜像都没有 DHCP 客户端,但 dhcp
插件充当容器的代理 DHCP 客户端,以便容器与 DHCP 服务器交互。
注意
此流程只适用于 rootfull 容器。Rootless 容器不使用 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 容器租期 IP 地址 192.168.1.122。
-
注意
如果您有大量短期容器和一个具有长租用的 DHCP 服务器,此配置可能会耗尽可用的 DHCP 地址。