Containers.conf 是 Podman 的主要配置文件,它包含各种用于调整 Podman 默认行为的选项。在这篇文章中,您将看到我们随 Podman 5.0 版本发布而对 containers.conf 所做的更改。
最大的变化是将 containers.conf 设置为只读。以前,Podman 会修改 containers.conf 文件以存储 Podman 系统连接和集群。写入 containers.conf 会带来问题,因为它会删除所有注释并可能重新排序用户选项。为了解决存储系统连接和集群信息的问题,我们决定停止使用 containers.conf,而是将这些内容存储在一个新文件 `podman-connections.json` 中,该文件位于旧的 containers.conf 文件旁边。这个新文件只能由 Podman 管理,用户不得直接编辑。Podman 继续支持旧的配置选项,例如 `[engine.service_destinations]` 和 `[farms]` 部分。这意味着在需要时仍然可以手动添加连接/集群,这也意味着向后兼容性得到了保证,因为 Podman 5.0 仍然可以读取使用 4.X 及更低版本创建的连接。但是,不再可能使用 `podman system connection rm` 删除此类连接。Podman-py 也已更新,以支持从 `podman-connections.json` 文件读取连接。
另一个变化是支持作为 root 用户的每个用户配置文件。以前 Podman 只搜索/usr/share/containers
/etc/containers
$XDG_CONFIG_HOME/containers
$HOME/.config/containers
/etc/containers
Containers.conf 支持一些新的配置字段
- [engine] 部分下的 `retry` 和 `retry_delay` 选项允许您指定图像拉取和推送操作的默认重试次数和重试之间的暂停时间。如果您的网络不是很稳定并且经常遇到间歇性故障,这很有用。默认是 3 次重试,延迟 1 秒。
- [network] 部分下的 `firewall_driver` 选项指定 netavark 的默认防火墙驱动程序。支持的值包括 iptables、none(不会创建防火墙规则)、nftables 和 firewalld(firewalld 目前处于实验阶段,不建议在测试之外使用)。
- 在 Hyper-V 虚拟机监控程序上为 podman machine init 添加了默认主目录卷,允许用户默认与 VM 共享主目录中的文件。
- [containers] 部分下的 `interface_name` 选项可以设置为 `device`,以便在使用 macvlan 或 ipvlan 网络驱动程序时,Podman 在容器中分配与主机相同的网络接口名称。
发表评论