更改现有podman网络的子网的正确方法



我正在使用podman v3.0.2,并试图更改现有podman网络的子网。我搜索了podman和CNI的文件,但找不到路。有什么正确的方法可以改变现有podman网络的网络吗?

背景

我已经创建了一些带有podman默认网络的容器(子网:10.88.0.1/16(,并希望将其子网用于其他容器。我认为最简单的方法是更改它的子网并想知道它。

我尝试的方式

我设法通过以下程序更改了它,但它似乎没有正式记录。此外,我认为操作系统重启是多余的,并希望避免它

  1. 停止所有连接到网络的容器
  2. 更改CNI网络文件中的subnet部分。
    • https://github.com/containers/podman/blob/main/cni/87-podman-bridge.conflist#L17
  3. 重新启动操作系统
  4. 启动程序1中停止的容器

我在podman文档中更改CNI网络文件中的DNS时使用了这种方式。https://podman.io/getting-started/network#using-容器网络中的dns

这个问题有点过时,但也许其他人会觉得这个答案很有用。吸引我眼球的是:

  1. 重新启动操作系统

您不需要重新启动操作系统。

以下程序适用于我:

  1. 关闭网络上的所有容器
  2. 通过运行ip link del cni-podman0(或为该网络配置的任何网桥名称(删除网桥设备
  3. /etc/cni/net.d中编辑CNI文件
  4. 启动在步骤1中启动的容器

以上步骤均作为root执行。

默认网络:

在RHEL 9中,默认配置源自/usr/share/containers/containers.conf。如果要为默认网络使用不同的子网,可以将此文件复制到/etc/containers/containers.conf并设置default_network变量。然后,您可以使用systemctl restart podman应用配置

手动添加的网络:

如果您使用podman network create test-net创建了一个网络,则默认情况下配置将在/etc/containers/networks/test-net.json中,但如果您在containers.conf中配置了cni后端,则配置可能在/etc/cni中。

有关的更多信息,请参阅/usr/share/man/man1/podman-network-*

相关内容

最新更新