我正在使用podman v3.0.2,并试图更改现有podman网络的子网。我搜索了podman和CNI的文件,但找不到路。有什么正确的方法可以改变现有podman网络的网络吗?
背景
我已经创建了一些带有podman默认网络的容器(子网:10.88.0.1/16(,并希望将其子网用于其他容器。我认为最简单的方法是更改它的子网并想知道它。
我尝试的方式
我设法通过以下程序更改了它,但它似乎没有正式记录。此外,我认为操作系统重启是多余的,并希望避免它
- 停止所有连接到网络的容器
- 更改CNI网络文件中的
subnet
部分。- https://github.com/containers/podman/blob/main/cni/87-podman-bridge.conflist#L17
- 重新启动操作系统
- 启动程序1中停止的容器
我在podman文档中更改CNI网络文件中的DNS时使用了这种方式。https://podman.io/getting-started/network#using-容器网络中的dns
这个问题有点过时,但也许其他人会觉得这个答案很有用。吸引我眼球的是:
- 重新启动操作系统
您不需要重新启动操作系统。
以下程序适用于我:
- 关闭网络上的所有容器
- 通过运行
ip link del cni-podman0
(或为该网络配置的任何网桥名称(删除网桥设备 - 在
/etc/cni/net.d
中编辑CNI文件 - 启动在步骤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-*