在Docker构建期间名称解析失败

时间:2018-08-10 12:00:23

标签: docker

我遇到一个问题,在发出docker build命令时收到以下错误:-

curl: (6) Could not resolve host: dl.yarnpkg.com
gpg: no valid OpenPGP data found.

这是我的Dockerbuild文件

# Base image
FROM ruby:2.5.0

RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
RUN curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee 
/etc/apt/sources.list.d/yarn.lisT
RUN apt-get update 
RUN apt-get install -qq -y build-essential libpq-dev nodejs yarn

在docker外部运行时,命令成功完成。

为了解决问题,我尝试了以下方法

  1. 将DNS服务器添加到/etc/docker/daemon.json-相同的问题
  2. 取消注释/ etc / default / docker中的DOCKER_OPTS =“-dns 8.8.8.8 --dns 8.8.4.4”行-相同的问题
  3. 替换我在/etc/resolv.conf中本地使用的DNS服务器-同样的问题。

我尝试了来自Google和OpenDNS的DNS服务器,以及多个ISP,具体取决于运行命令的位置

Laptop运行的是Ubuntu 16:04,其Docker版本为18.06.0-ce,已安装内部版本0ffa825。

使用以下内容也会失败

FROM ruby:2.5.0
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

引起以下错误

W: Failed to fetch http://deb.debian.org/debian/dists/stretch/InRelease  Temporary failure resolving 'deb.debian.org'
W: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/InRelease  Temporary failure resolving 'deb.debian.org'
W: Failed to fetch http://security.debian.org/dists/stretch/updates/InRelease  Temporary failure resolving 'security.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.

所以我知道这不是dl.yarnpkg.com主机的问题。

使用no-cache选项运行docker build命令没有区别。

2 个答案:

答案 0 :(得分:2)

我在Ubuntu 16.04上使用Docker,有时我也遇到名称解析问题。

唯一能做到的就是在构建时添加--network=host。我不太确定发生了什么,但似乎需要使用它来使用计算机名称解析功能。希望对您有所帮助。

答案 1 :(得分:1)

有时候我遇到这个问题,我需要重启docker守护进程。

我在虚拟机上工作,基本上我从不关闭它,而是冻结它并稍后再工作。我还必须在主机上切换网络,这也会影响虚拟机。

这似乎不时使docker守护程序感到困惑,并且必须重新启动以使其网络堆栈恢复到一致状态。