Windows环境下Podman Desktop通过本地代理拉取镜像失败怎么解决?
问题
Windows主机已安装Podman Desktop,通过VPN连接工作网络,本地代理127.0.0.1:3128在Firefox中可正常使用,但执行podman pull redhat/ubi8-micro多次失败。
在CMD中设置了环境变量:
set HTTPS_PROXY=http://127.0.0.1:3128 set HTTP_PROXY=http://127.0.0.1:3128
执行podman pull podman/hello时出现报错:
docker run quay.io/podman/hello Unable to find image 'quay.io/podman/hello:latest' locally docker: initializing source docker://quay.io/podman/hello:latest: pinging container registry quay.io: Get "https://quay.io/v2/": dial tcp: lookup quay.io: Temporary failure in name resolution.
nslookup quay.io能返回正确结果,curl quay.io也可正常访问。
解决方案
1. 给Podman daemon配置代理(别只在终端设环境变量)
终端里的环境变量只对当前shell生效,Podman daemon读不到。直接在Podman Desktop里配置:
- 打开Podman Desktop,进Settings > Network
- 勾选"Enable proxy",填入:
- HTTP proxy:
http://127.0.0.1:3128 - HTTPS proxy:
http://127.0.0.1:3128
- HTTP proxy:
- 保存后重启Podman Desktop,让daemon重新加载配置
2. 检查VPN的DNS转发设置
有些VPN会改系统DNS,导致Podman daemon解析域名失败。手动给Podman指定DNS服务器:
- 进Podman Desktop的Settings > Network > DNS
- 添加公共DNS,比如
8.8.8.8或1.1.1.1,把它移到最上面优先使用 - 重启Podman后再试pull命令
3. 确认Podman能访问代理地址
Windows下Podman默认用WSL2后端,WSL2的localhost和Windows的localhost不是一个网络空间,得用Windows主机的局域网IP(比如192.168.x.x)代替127.0.0.1当代理地址
- 重新设置环境变量和Podman代理配置为这个局域网IP,再测试
4. 排查防火墙/安全软件拦截
检查Windows防火墙、VPN客户端的规则,确保Podman相关进程(podman.exe、podman-docker.exe)和WSL2的网络流量能通过3128端口
内容的提问来源于stack exchange,提问作者936940
相关产品推荐
相关产品推荐

