Oracle Linux 9(rootless)下podman-auto-update报‘pod无infra容器’错误
在Oracle Linux 9(aarch64)无权限环境配置podman-auto-update的问题及进展
我在Oracle Linux 9(aarch64)的无权限(rootless)虚拟机上配置podman-auto-update时,每次执行更新都会收到所有容器的报错:pod has no infra container: no such container。之前在Ubuntu和Debian系统上该功能可以正常运行,这是我第一次在Oracle Linux上操作。
已完成的基础配置:
- 为每个服务添加
io.containers.autoupdate: "registry"标签 - 启动并启用
podman-auto-update.timer服务 - 创建
~/.config/systemd/user目录用于存放unit文件 - 创建
~/.config/containers/systemd目录用于存放quadlet文件
尝试过的解决方案
- 使用
docker-compose.yaml和podman-compose启动容器,通过命令podman generate systemd --new --name --files "${container_name}"生成unit文件,启用并启动服务后执行podman auto-update --dry-run,仍出现相同报错。 - 基于运行中的容器,使用podlet工具生成
.container文件并放置到对应目录,重载systemd daemon并启动服务,执行podman-auto-update依旧报错。 - 使用
podman-compose内置命令podman-compose systemd -a register生成unit文件,启动服务后执行podman-auto-update,问题依然存在。
我刚从Docker迁移到Podman,查阅资料后认为该功能应该可以正常运行,推测可能忽略了Oracle Linux与Debian系系统的差异,但对照Oracle官方指南的步骤,我的操作完全一致。
更新:问题定位与临时解决方法
已部分定位问题:podman-compose运行compose文件时会自动生成无infra ID的pod。尝试创建infra=true的pod及使用quadlet文件仍无法让auto-update正常工作,但使用podman-compose up --in-pod=0启动容器并生成传统systemd unit文件后,podman-auto-update已可正常运行。
附相关代码示例
podman ps输出pod ps输出docker-compose.yaml内容- podman版本信息
.container文件示例- unit文件示例
内容的提问来源于stack exchange,提问作者Timothy Bryant
相关产品推荐
相关产品推荐

