Docker Compose构建时无法解析域名问题求助
Docker Compose构建时DNS解析失败的解决方法
问题描述
使用docker compose build构建镜像时遇到以下错误:
curl: (6) Could not resolve host: deb.nodesource.com
重启机器后出现该问题,主机环境下ping deb.nodesource.com和curl访问均正常,使用docker build --network host构建可成功完成,但Docker Compose构建始终无法解析域名,尝试配置Docker全局DNS无效。
解决方案
1. 为Docker Compose构建指定host网络
在docker-compose.yml的服务构建配置中添加network: host,让构建过程直接使用主机网络的DNS配置:
services: 你的服务名: build: context: . dockerfile: Dockerfile network: host
2. 手动指定构建时的DNS服务器
若不想使用host网络,可在构建配置中直接指定DNS服务器地址(比如公共DNS或主机自身的DNS):
services: 你的服务名: build: context: . dockerfile: Dockerfile dns: - 8.8.8.8 # Google DNS - 1.1.1.1 # Cloudflare DNS
3. 重新配置Docker守护进程DNS
如果之前修改Docker DNS未生效,确保配置步骤正确:
- 创建或编辑
/etc/docker/daemon.json文件:
{ "dns": ["8.8.8.8", "1.1.1.1"] }
- 重启Docker服务使配置生效:
sudo systemctl restart docker
完成后重新执行docker compose build测试。
内容的提问来源于stack exchange,提问作者GeraniumCat
相关产品推荐
相关产品推荐

