Podman已登录docker.io仍提示认证失败无法拉取镜像问题
Rootless模式Podman拉取Docker Hub镜像认证报错排查
问题表现
rootless模式运行Podman从docker.io拉取容器镜像时出现异常,前置登录状态验证均正常:
- 执行
podman login docker.io完成docker.io登录 - 执行
podman login --get-login返回登录用户为dennis605 - 执行
podman login返回凭证有效提示:Authenticating with existing credentials for docker.io;Existing credentials are valid. Already logged in to docker.io
执行拉取命令podman pull docker.io/jc21/mariadb-aria:latest时持续返回报错,镜像拉取失败:
Error: initializing source docker://jc21/mariadb-aria:latest: reading manifest latest in docker.io/library/jc21/mariadb-aria: errors: denied: requested access to the resource is denied unauthorized: authentication required
预期行为:已登录状态下可直接拉取镜像,无认证相关报错。
同环境下执行docker pull docker.io/jc21/mariadb-aria:latest可正常拉取该镜像,确认镜像真实存在、网络连通无异常。
环境信息
- Podman版本:4.1.1
- 操作系统:Debian 11(bullseye)linux/amd64
- 运行模式:非root(rootless)模式
复现流程
- 执行
podman login docker.io完成Docker Hub账号登录 - 执行
podman pull docker.io/jc21/mariadb-aria:latest即可触发上述报错
日志特征
开启debug模式执行拉取操作时,可观测到核心异常点:
- Podman错误将目标镜像路径解析为
docker.io/library/jc21/mariadb-aria:latest,额外拼接了官方镜像专属的library命名空间前缀 - 请求认证token时携带的scope参数为错误路径
repository:library/jc21/mariadb-aria:pull - 最终访问镜像manifest接口时返回权限拒绝、需认证的错误
解决方案
永久修复
该问题为Podman 4.1.x版本的镜像路径解析bug,升级Podman到4.2.0及以上版本即可彻底解决,升级后无需额外配置即可正常拉取非官方命名空间的Docker Hub镜像。
临时绕过
如果暂时无法升级Podman版本,可采用以下任意一种方式绕过:
- 拉取镜像时使用Docker Hub的原始索引域名替代简写的
docker.io,执行命令:
该方式可跳过短名解析逻辑,避免错误拼接podman pull index.docker.io/jc21/mariadb-aria:latestlibrary前缀。 - 编辑rootless模式下的容器配置文件
~/.config/containers/registries.conf,添加如下配置关闭短名自动补全逻辑:
保存配置后重新执行拉取命令即可正常拉取。short-name-mode = "disabled" unqualified-search-registries = ["docker.io"]
内容的提问来源于stack exchange,提问作者dennis605
相关产品推荐
相关产品推荐

