podman 容器 IP 地址应与断开连接和连接时保持一致

podman 容器 IP 地址应与断开连接和连接时保持一致

假设有 podman 网络net1和容器cont1。我在创建容器时使用 将 podman 网络连接到容器--net net1。还可以使用podman network disconnect/connect net1 cont1命令断开和连接虚拟网卡net1。每次我断开和连接网卡时,容器内的 ip 地址都会增加 1 net1

我尝试过但没有帮助我实现我需要的:

podman network rm net1
systemctl restart systemd-networkd
systemctl restart NetworkManager.service
nmcli nm enable false
sleep 5
nmcli nm enable true 
killall NetworkManager && sudo NetworkManager
podman network create net1

对于这些尝试,我假设 NetworkManager 可能记住了以前的 IP 地址,因此在 podman nic 上使用 dhcp 分配下一个地址net1。我尝试了上面的代码块podman network disconnect和之间podman network connect,以及之间(符号命令):podman stop and remove cont1podman create cont1 with --net net1。这些步骤都没有帮助。

如果一次内的 ip 地址cont110.89.0.2,则下一次(在断开/连接 net1 到 cont1 之后或移除 cont1 + 创建 cont1 + 将 cont1 连接到 net1 之后)将是10.89.0.3。我需要它保持在10.89.0.2

系统规格:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal
podman version 3.4.2

我正在使用sudo所有这些命令,包括podman

答案1

我相信您每次都试图为容器分配相同的 IP。简而言之,您希望容器具有静态 IP。

然后你必须用参数启动你的容器

创建我自己的网络

podman network create --subnet=172.18.0.0/16 mydockernetwork

--ip使用静态 IP参数启动容器

podman run --net mydockernetwork --ip 172.18.0.4 -it --name ubuntu_static_ip ubuntu

让我们找出 IP 地址

[bob@centos-host ~]$ podman inspect c88945483ee4 | grep -i IPAddress
            "IPAddress": "",
                    "IPAddress": "172.18.0.4",

停止容器

[bob@centos-host ~]$ podman ps
CONTAINER ID  IMAGE                            COMMAND         CREATED             STATUS                 PORTS       NAMES
c88945483ee4  docker.io/library/ubuntu:latest  sh -c sleep 1d  About a minute ago  Up About a minute ago              ubuntu_static_ip2
[bob@centos-host ~]$ podman stop c88945483ee4
c88945483ee4
[bob@centos-host ~]$ podman ps
CONTAINER ID  IMAGE       COMMAND     CREATED     STATUS      PORTS       NAMES

现在重新开始

[bob@centos-host ~]$ podman start c88945483ee4
c88945483ee4
[bob@centos-host ~]$ podman inspect c88945483ee4 | grep -i IPAddress
            "IPAddress": "",
                    "IPAddress": "172.18.0.4",
[bob@centos-host ~]$ 

如您所见,IP 地址没有改变。希望对您有所帮助。

参考:http://thelinuxmen.blogspot.com/2021/08/docker-networking-basisc-configure.html了解更多信息。

相关内容