gpt4 book ai didi

Docker build "Could not resolve ' archive.ubuntu.com'"apt-get 无法安装任何东西

转载 作者:IT老高 更新时间:2023-10-28 12:33:25 30 4
gpt4 key购买 nike

我一直在尝试在以前工作的各种文件上运行 Docker 构建,现在这些文件不再工作了。

只要 Docker 文件包含任何要安装软件的行,它就会失败并显示一条消息,指出找不到软件包。

RUN apt-get -y install supervisor nodejs npm

日志中出现的常见消息是

Could not resolve 'archive.ubuntu.com'

知道为什么任何软件都无法安装吗?

最佳答案

取消注释 /etc/default/docker 中的 DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"Matt Carrier建议对我有用。也没有将我公司的 DNS 服务器放在该文件中。但是,还有另一种方法(请继续阅读)。

首先,我们来验证一下问题:

$ docker run --rm busybox nslookup google.com   # takes a long time
nslookup: can't resolve 'google.com' # <--- appears after a long time
Server: 8.8.8.8
Address 1: 8.8.8.8

如果命令似乎挂起,但最终吐出错误“无法解析 'google.com'”,那么你和我有同样的问题。

nslookup 命令查询 DNS 服务器 8.8.8.8 以便将“google.com”的文本地址转换为 IP 地址。具有讽刺意味的是,8.8.8.8 是 Google's public DNS server .如果 nslookup 失败,您的公司可能会阻止像 8.8.8.8 这样的公共(public) DNS 服务器(我认为这是出于安全原因)。

您认为将您公司的 DNS 服务器添加到 /etc/default/docker 中的 DOCKER_OPTS 应该可以解决问题,但无论出于何种原因,它都没有为我工作。我在下面描述了对我有用的方法。

解决方案:

在主机上(我使用的是 Ubuntu 16.04),找出主要和次要 DNS 服务器地址:

$ nmcli dev show | grep 'IP4.DNS'
IP4.DNS[1]: 10.0.0.2
IP4.DNS[2]: 10.0.0.3

使用这些地址,创建一个文件/etc/docker/daemon.json:

$ sudo su root
# cd /etc/docker
# touch daemon.json

把这个放到/etc/docker/daemon.json:

{                                                                          
"dns": ["10.0.0.2", "10.0.0.3"]
}

从根目录退出:

# exit

现在重启 docker:

$ sudo service docker restart

验证:

现在检查添加 /etc/docker/daemon.json 文件是否允许您将“google.com”解析为 IP 地址:

$ docker run --rm busybox nslookup google.com
Server: 10.0.0.2
Address 1: 10.0.0.2
Name: google.com
Address 1: 2a00:1450:4009:811::200e lhr26s02-in-x200e.1e100.net
Address 2: 216.58.198.174 lhr25s10-in-f14.1e100.net

引用文献:

我的解决方案基于 Robin Winslow 的一篇文章,他的解决方案值得称赞。谢谢,罗宾!

“修复 Docker 的网络 DNS 配置。”罗宾温斯洛。检索 2016-11-09。 https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/

关于Docker build "Could not resolve ' archive.ubuntu.com'"apt-get 无法安装任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24991136/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com