Docker Compose代理环境下构建失败:auth.docker.io解析错误(RockyLinux镜像)
解决代理环境下docker-compose build解析auth.docker.io失败的问题
问题核心
Docker daemon拥有独立的网络配置,系统层面的代理设置不会自动同步给它,导致构建过程中无法通过代理访问auth.docker.io获取授权令牌,最终触发DNS解析失败的rpc错误。
解决方案
1. 配置Docker daemon代理
编辑或创建Docker daemon配置文件/etc/docker/daemon.json,添加代理参数:
{ "proxies": { "default": { "httpProxy": "http://你的代理IP:端口", "httpsProxy": "http://你的代理IP:端口", "noProxy": "localhost,127.0.0.1,auth.docker.io" } } }
- 若代理需要身份验证,格式为
http://用户名:密码@代理IP:端口 - 保存后重启Docker服务使配置生效:
systemctl restart docker
2. 强制指定Docker DNS服务器
如果代理环境下DNS解析不稳定,可在daemon.json中添加公共DNS服务器:
{ "dns": ["8.8.8.8", "8.8.4.4"] }
添加后同样重启Docker服务。
3. 验证配置有效性
- 查看Docker代理配置是否生效:
docker info | grep -A 5 "Proxy Settings"
- 测试DNS解析是否正常:
docker run --rm busybox nslookup auth.docker.io
若能返回auth.docker.io的IP地址,说明解析功能正常。
4. 为docker-compose构建阶段传递代理(可选)
在docker-compose.yml中为构建环节添加代理环境变量:
services: 你的服务名: build: context: . args: - HTTP_PROXY=http://你的代理IP:端口 - HTTPS_PROXY=http://你的代理IP:端口 - NO_PROXY=localhost,127.0.0.1,auth.docker.io
内容的提问来源于stack exchange,提问作者mdev111
相关产品推荐
相关产品推荐

