Podman拉取指定镜像报错:无法解析mcr.microsoft.com主机
Podman拉取MCR镜像失败问题排查
问题详情
尝试拉取已存在且标签正确的微软容器镜像,执行命令:
podman pull mcr.microsoft.com/devcontainers/python:3.9-bullseye
出现如下错误:
Trying to pull mcr.microsoft.com/devcontainers/python:3.9-bullseye... Error: initializing source docker://mcr.microsoft.com/devcontainers/python:3.9-bullseye: pinging container registry mcr.microsoft.com: Get "https://mcr.microsoft.com/v2/": dial tcp: lookup mcr.microsoft.com: no such host
环境验证信息
- 执行
ping mcr.microsoft.com结果正常:
PING mcr-0001.mcr-msedge.net (150.171.70.10): 56 data bytes 64 bytes from 150.171.70.10: icmp_seq=0 ttl=116 time=15.035 ms 64 bytes from 150.171.70.10: icmp_seq=1 ttl=116 time=11.670 ms 64 bytes from 150.171.70.10: icmp_seq=2 ttl=116 time=16.970 ms
- Podman基础功能正常,
podman run hello-world可正常输出:
podman run hello-world !... Hello Podman World ...! .--"--. / - - \ / (O) (O) \ ~~~| -=(,Y,)=- | .---. /` \ |~~ ~/ o o \~~~~.----. ~~ | =(X)= |~ / (O (O) \ ~~~~~~~ ~| =(Y_)=- | ~~~~ ~~~| U |~~ Project: https://github.com/containers/podman Website: https://podman.io Desktop: https://podman-desktop.io Documents: https://docs.podman.io YouTube: https://youtube.com/@Podman X/Twitter: @Podman_io Mastodon: @Podman_io@fosstodon.org
- 容器配置目录
${HOME}/.config/containers内容:
$ cd ${HOME}/.config/containers USMAJY44F4QXP7M:containers$ ls -al total 16 -rw------- auth.json drwxr-xr-x podman -rw-r--r-- podman-connections.json -rw-r--r--@ podman-connections.json.lock
- 此前该镜像拉取命令在Docker中可正常执行,这是首次使用Podman。
可行排查方案
- 检查Podman DNS配置:Podman可能使用独立于系统的DNS设置。查看
/etc/containers/containers.conf或~/.config/containers/containers.conf中的dns字段,若未配置,添加系统默认DNS服务器(如本地网关DNS或公共DNS 8.8.8.8),保存后重启Podman。 - 使用Host网络拉取:尝试绕过Podman的默认网络,直接使用主机网络进行拉取,执行命令:
podman pull --network host mcr.microsoft.com/devcontainers/python:3.9-bullseye
- 清除Podman缓存与重置配置:执行
podman system reset(注意:此操作会重置所有Podman配置、删除本地镜像/容器/卷,需提前备份重要数据),之后重新尝试拉取。 - 手动指定镜像IP拉取:根据ping结果,将命令中的域名替换为解析后的IP地址测试:
podman pull 150.171.70.10/devcontainers/python:3.9-bullseye --tls-verify=false
(注:禁用TLS验证仅用于测试,生产环境不建议使用)
- 检查认证文件格式:查看
~/.config/containers/auth.json内容,确保JSON格式无语法错误,MCR公共镜像无需认证,若文件存在异常可临时重命名该文件后重试。
内容的提问来源于stack exchange,提问作者Tanu
相关产品推荐
相关产品推荐

