Docker 构建“无法解析 'archive.ubuntu.com'” apt-get 无法安装任何内容

2024-03-20

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

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

RUN apt-get -y install supervisor nodejs npm

日志中显示的常见消息是

Could not resolve 'archive.ubuntu.com'

知道为什么有软件无法安装吗?


取消注释DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4" in /etc/default/docker as 马特·开瑞尔 https://stackoverflow.com/users/873559/matt-carrier建议做NOT为我工作。将我公司的 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'”,那么您遇到了与我相同的问题。

The nslookup命令查询 DNS 服务器 8.8.8.8,以便将“google.com”的文本地址转换为 IP 地址。讽刺的是,8.8.8.8 是Google 的公共 DNS 服务器 https://developers.google.com/speed/public-dns/. If nslookup fails, 您的公司可能会阻止 8.8.8.8 等公共 DNS 服务器(我认为这是出于安全原因)。

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

SOLUTION:

在主机上(我使用的是 Ubuntu 16.04),找出主 DNS 服务器地址和辅助 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 月 9 日。https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/ https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 构建“无法解析 'archive.ubuntu.com'” apt-get 无法安装任何内容 的相关文章

  • 可以从curl访问docker服务,但不能从postman/chrome访问docker服务

    我正在做 docker 入门指南 https docs docker com get started part3 recap and cheat sheet optional https docs docker com get starte
  • 如何通过 docker-php-ext-install 安装 php 扩展?

    为了解决问题 https stackoverflow com questions 37526509 how to install pdo driver in php docker image 我现在尝试通过安装 mysql pdo dock
  • 稍后如何附加到正在运行的 Docker 容器?

    我想简单地启动一个 docker 容器来执行一些 java 代码 最终启动 JBoss 这工作正常 只是我不知道如何再次连接到容器并返回到 bash 提示符 这就是我启动容器的方式 docker run i t p 80 80 v tmp
  • Docker 未知标志 --mount

    我想使用 mount 将目录从主机挂载到容器flag over volume但我得到 这仅在使用安装标志时才会出现 而不是在使用卷时出现 Command docker run d it name devtest mount type bin
  • Docker:内存文件系统

    我有一个 docker 容器 它对磁盘进行大量读 写操作 我想测试当我的整个 docker 文件系统都在内存中时会发生什么 我在这里看到一些答案说这不会是真正的性能改进 但这是为了测试 我想测试的理想解决方案是共享每个图像的公共部分 并在需
  • Docker - Spring Boot 应用程序 - 无法访问本地主机上的 MySql 服务器

    如何将在 Docker 中运行的 Spring Boot JAR 应用程序连接到我计算机上的 MySql 服务器 我尝试了不同的帖子 但这没有帮助 在我的 Spring Boot application properties 中 我有 sp
  • 在 .gitlab-ci.yml 上找不到curl命令

    我有一个 gitlab ci yml 文件 它创建一些 docker 镜像并将其推送到 AWS ECR 当我运行curl命令将一些工件推送到远程存储库时 它显示curl 未找到 我已经在使用 openjdk 映像进行 gradlew 构建
  • Visual Studio 2015 Docker 集成不会附加调试

    我使用 VS 2015 创建了一个 Default net Core RC2 MVC 应用程序 我添加了 Docker 支持 以便我可以在 docker 中运行和调试它 当我运行该项目时 它会构建 docker 容器并启动它 运行命令 do
  • 运行 py.test 时出现错误 ImportMismatchError

    当我在本地运行测试时 它工作正常 但是在创建 docker 并在容器内运行后 我收到以下错误 usr local lib python3 5 site packages pytest config py 325 in getconftest
  • 如何在 Mac 上升级 Docker? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我尝试了 docker machine升级 并做了一些工作 但我似乎没有最新的 CLI 如果我执行 docker 版本 我会得到 Clie
  • 在 Java EE 应用程序开发中使用 Docker

    我将添加300点作为赏金 我最近开始仔细研究 Docker 以及如何使用它来更快地让团队的新成员启动并运行开发环境 以及将新版本的软件交付到生产环境 我有一些关于如何以及在什么阶段将 Java EE 应用程序添加到容器的问题 据我所知 有多
  • 如何启用非 docker 操作来访问我的自托管 github 操作运行器上 docker 创建的文件? (无根码头工人)

    Github 建议以非 root 用户身份运行他们的运行程序 这引起了一些问题围绕混合 docker 和非 docker 操作的问题 https github com actions runner issues 434 这非常烦人 因为它导
  • Docker容器CPU使用率监控

    根据 docker 的文档 我们可以通过以下方式获取 docker 容器的 CPU 使用率码头工人统计命令 CPU 列将给出容器正在使用的主机 CPU 的百分比 假设我限制容器使用 50 的主机单个 CPU 我可以通过 cpus 0 5 选
  • 无法从 docker 容器打开 URL

    我在从 Docker 容器导航到 Google 身份验证页面时遇到问题 该应用程序是使用 asp net Core 2 0 制作的 其目的是显示从 Google Calendar API 检索的即将发生的事件 并在需要时创建事件 当应用程序
  • 启动 docker 容器时向主机 /etc/hosts 文件添加条目

    我希望能够将主机名添加到映射到 docker 容器的笔记本电脑 etc hosts 中 由于容器 ip 不是静态的 因此我启动 重新启动容器的每个站点都需要手动更新 etc hosts 文件 这不太实用 我正在寻找一种简单的方法来解决这个问
  • Kubernetes 1.8 支持的 Docker 版本

    我要将我的 Kubernetes 集群升级到该版本1 8 7 有谁知道哪个 docker 版本与其最兼容 这是我在 Kubernetes 官方页面上找到的 但我想它可能是针对最新的 k8s 版本的 1 9 在每台计算机上安装 Docker
  • 如何在 App Engine 中灵活更改 /dev/shm 的大小

    如何更改共享内存文件夹的大小 dev shm在 App Engine 灵活应用程序中 默认情况下 它设置为 64M 太低 无法运行许多应用程序 例如 Chrome 我看不出有什么办法可以改变它 如果您有权访问 可以通过多种方法进行更改doc
  • APT:Post-Invoke 在 debian:bookworm-slim 上失败

    我有一个 Jenkins 管道 它使用docker dind 20 在这个过程中我做 FROM ruby 3 2 slim bookworm apt get update 当我尝试使用我的本地构建映像 MacOS ventura 时dock
  • 如何在不重建镜像的情况下更新源代码

    我在 GitLab 上创建了一个新的存储库 在其中为我的 Angular 项目构建了一个 docker 镜像 现在我在本地对源代码做了一些修改 有没有办法可以更新 docker 映像而不重建它 None
  • Docker:Nginx 和 php5-fpm docker 不说话

    我想进行完全 Docker 化的 Drupal 安装 我的第一步是让容器与 Nginx 和 php5 fpm 一起运行 两者都基于 Debian 我在 CoreOS alpha 频道 使用 Digital Ocean 我的 Dockerfi

随机推荐

  • 删除不必要的 svn:mergeinfo 属性

    当我合并我的存储库中的内容时 Subversion 想要添加 更改很多内容svn mergeinfo与我要合并的内容完全无关的文件的属性 有关此行为的问题之前已在 Stack Overflow 上提出过 工作副本根目录以外的路径上的 SVN
  • 带有“href”的plotly树形图元素不适用于本地相对html路径

    我有一个简单的表格 文本内有 href href指向本地html文件的相对路径 但点击它并不会打开该页面 有什么办法可以做到这一点 好的解决方法吗 文件夹结构如下 由于root会改变 所以需要相对路径 root root index htm
  • Iphone - 当每个单元格高度是动态时,何时计算 tableview 的 heightForRowAtIndexPath?

    我已经多次看到这个问题被问到 但令人惊讶的是 我没有看到一致的答案 所以我自己尝试一下 如果您有一个包含您自己的自定义 UITableViewCells 的 tableview 其中包含 UITextViews 和 UILabels 其高度
  • 如何根据整个 github actions 工作流程的成功或失败设置 github 分支保护规则?

    我正在尝试根据 github 操作工作流程的成功或失败设置 github 分支保护规则 您可以在此处查看工作流程 https github com apostropecms apostrope blob main github workfl
  • Rust 与 Python 程序性能结果问题

    我写了一个计算字数的程序 这是程序 use std collections HashMap use std io use std io prelude derive Debug struct Entry word String count
  • 自动完成扩展器在模式弹出扩展器内不起作用

    我正在打开一个弹出窗口 其中有一个文本框 我想为此文本框使用 Ajax 自动完成 extebder 但它无法调用 webservice 方法进行自动完成 无法理解这是回发或更新面板的问题 我应该在哪里使用更新面板 我的包含弹出 div 的页
  • GCC 声明: typedef __pid_t pid_t?

    我对 例如 pid t 的声明感到困惑 pid t 是什么意思 它是其他地方定义的另一种类型吗 如果是 在哪里 为什么我的 types h 在 ubuntu 13 04 64 位中定义 pid t 如下 ifndef pid t defin
  • 如何在 Markdown 表格中编写列表?

    可以在 Markdown 表格中创建一个列表 项目符号 编号与否 一个表看起来像这样 Tables Are Cool col 3 is right aligned 1600 col 2 is centered 12 zebra stripe
  • 按 Enter 键后将焦点保持在文本框上

    在VBA窗体中按回车键后如何将焦点保持在文本框中 此代码将文本添加到列表框 我想将焦点保持在文本框上以准备接收另一个项目 当我单击 添加 按钮时 它将文本添加到列表框并将焦点返回到文本框 但是当我按 Enter 时 它不会 即使它使用相同的
  • 在 C# 中从 DBMS_OUTPUT.GET_LINES 获取输出缓冲区

    我正在尝试获取输出DBMS OUTPUT PUT LINE 通过 C 在我的匿名 PL SQL 块中调用方法 我在这里查看了其他几个相关问题 但仍然遇到麻烦 执行匿名块的返回码正在return 1 这应该是正确的docs https doc
  • 如何在 Google Compute Engine 中打开特定端口(例如 9090)

    我有 2 个 Google Compute Engine 实例 我想在这两个实例中打开端口 9090 我认为我们需要添加一些防火墙规则 你能告诉我该怎么做吗 Answer recommended by Google Cloud collec
  • 在 Jinja2 中显示嵌套字典

    我有以下 Jinja2 模板 block body for key in tree recursive set outer loop loop for subkey in tree key if subkey R tree key subk
  • 网络挖掘-分类算法

    我的高级项目是确定网页的主导类别 我抓取了 dmoz 现在我正在尝试构建arff 之后我将使用一些特征提取方法和分类算法 您知道哪种特征提取方法与用于网络挖掘的任何分类算法表现良好吗 u分类 http www uclassify com u
  • Java 同步引用

    我有A级和B级 public class A private static List
  • 有没有一种将视频从 Android 流式传输到 RTSP 服务器的好方法?

    我已经四处寻找并没有真正发现任何东西 我想通过流将视频从内置摄像头发送到我的 RTSP 服务器 在寻找示例时 我发现 MediaPlayer 的 setDataSource 方法可能只包含服务器上流的位置 我尝试用以下方法来模拟 media
  • 更新关系数据的算法

    已知哪些算法可以在存在数据库约束的情况下通过插入 更新和删除行来执行更新数据库的任务 更具体地说 要删除的行的前图像 要插入的行的后图像以及要更新的行的两个图像都在内存中 这些行可能用于多个表 更新的确切顺序要么是未知的 要么是没有被保留
  • mingw 中的 libpthread 找不到库

    我正在尝试使用 mingw 编译以下程序 include
  • 找到gzip的开头和结尾?

    我有一些文件 有一些随机字节和多个 gzip 文件 如何在某个文件中找到 gzip 流的开头和结尾 gzip 流之间有许多随机字节 所以 基本上我需要找到任何 gzip 文件并从那里获取它 读自RFC 1952 GZIP https www
  • 将 xml 转换为 JSON 的库,反之亦然

    我需要将 xml 中的一种文档格式转换为 JSON 反之亦然 我相信这是一个常见的要求 也许仍然有一个库可以做到这一点 有知道的吗 不是 C 但是纯粹的 XSLT 2 0 实现将 JSON 对象转换为 XML 文档 看看来自FXSL 2 x
  • Docker 构建“无法解析 'archive.ubuntu.com'” apt-get 无法安装任何内容

    我一直在尝试在以前可以工作但现在不再工作的各种文件上运行 Docker 构建 一旦 Docker 文件包含任何用于安装软件的行 它就会失败并显示一条消息 指出找不到该包 RUN apt get y install supervisor no