我遇到一个问题,在发出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外部运行时,命令成功完成。
为了解决问题,我尝试了以下方法
我尝试了来自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命令没有区别。
答案 0 :(得分:2)
我在Ubuntu 16.04上使用Docker,有时我也遇到名称解析问题。
唯一能做到的就是在构建时添加--network=host
。我不太确定发生了什么,但似乎需要使用它来使用计算机名称解析功能。希望对您有所帮助。
答案 1 :(得分:1)
有时候我遇到这个问题,我需要重启docker守护进程。
我在虚拟机上工作,基本上我从不关闭它,而是冻结它并稍后再工作。我还必须在主机上切换网络,这也会影响虚拟机。
这似乎不时使docker守护程序感到困惑,并且必须重新启动以使其网络堆栈恢复到一致状态。