Podman拉取Docker Hub基础镜像报认证错误如何解决
故障根因
核心问题是基础镜像名拼写错误:Dockerfile的FROM指令中,你将官方基础镜像ubuntu错写为ubunut(末尾t、u字母顺序颠倒)。Podman按照错误拼写拉取docker.io/library/ubunut:focal时,Docker Hub上不存在这个镜像,对于不存在的非公开镜像,Docker Hub会统一返回「authentication required、access denied」类报错,和你配置的登录凭证有效性无关。
顺带说明你之前存疑的域名问题:Docker Hub的镜像拉取服务专用域名就是docker.io,hub.docker.com是网页端访问的官网域名,二者用途不同,你在registries.conf里的配置完全正确。
修复步骤
- 修正Dockerfile中的拼写错误,将FROM行改为正确内容:
FROM ubuntu:focal
- 若要避免构建时弹出镜像源选择菜单,可直接在FROM中写全镜像完整路径,跳过非限定镜像搜索逻辑:
FROM docker.io/library/ubuntu:focal
- 修正后重新执行构建命令即可:
podman build --authfile=./auth.json .
验证方法
如果修正后仍有拉取报错,可以先单独执行基础镜像拉取命令,验证凭证和网络连通性:
podman pull --authfile=./auth.json docker.io/library/ubuntu:focal
该命令执行成功即代表基础镜像拉取链路正常,后续构建不会在第一步出现问题。你之前生成的auth.json认证文件结构符合要求,无需调整。
内容的提问来源于stack exchange,提问作者rbaleksandar
相关产品推荐
相关产品推荐

