You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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)模式

复现流程

  1. 执行podman login docker.io完成Docker Hub账号登录
  2. 执行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版本,可采用以下任意一种方式绕过:

  1. 拉取镜像时使用Docker Hub的原始索引域名替代简写的docker.io,执行命令:
    podman pull index.docker.io/jc21/mariadb-aria:latest
    
    该方式可跳过短名解析逻辑,避免错误拼接library前缀。
  2. 编辑rootless模式下的容器配置文件~/.config/containers/registries.conf,添加如下配置关闭短名自动补全逻辑:
    short-name-mode = "disabled"
    unqualified-search-registries = ["docker.io"]
    
    保存配置后重新执行拉取命令即可正常拉取。

内容的提问来源于stack exchange,提问作者dennis605

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:33:59