首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker无法解析'deb.debian.org‘

问Docker无法解析'deb.debian.org‘
EN

Stack Overflow用户
提问于 2018-06-26 10:36:51
回答 4查看 20K关注 0票数 13

我试图在Docker中为一些实验构建一个容器。这是我的Dockerfile。

代码语言:javascript
复制
FROM debian

RUN mkdir -p /var/run/sshd

RUN apt-get update
RUN apt-get install -y openssh-server

RUN apt-get install -y sudo

RUN echo AddressFamily inet >> /etc/ssh/sshd_config

ARG username=Rivers
ARG userpasswd=perfectXJ2017

RUN useradd -ms /bin/bash $username && (echo $username:$userpasswd | chpasswd)

RUN adduser $username sudo

CMD /usr/sbin/sshd -D

我尝试使用sudo docker build -t ics-image .命令构建我的映像。

但后来我收到一些错误消息,整个过程就停止了。以下是错误消息。

代码语言:javascript
复制
Sending build context to Docker daemon  2.048kB
Step 1/11 : FROM debian
 ---> 8626492fecd3
Step 2/11 : RUN mkdir -p /var/run/sshd
 ---> Running in 1e1f2dbbe5ca
Removing intermediate container 1e1f2dbbe5ca
 ---> dd4bec2f81d4
Step 3/11 : RUN apt-get update
 ---> Running in 022301215bfb
Get:1 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]
Get:2 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [450 kB]
Err:3 http://deb.debian.org/debian stretch InRelease
  Could not resolve 'deb.debian.org'
Err:4 http://deb.debian.org/debian stretch-updates InRelease
  Could not resolve 'deb.debian.org'
Fetched 544 kB in 20s (26.9 kB/s)
Reading package lists...
W: Failed to fetch http://deb.debian.org/debian/dists/stretch/InRelease  Could not resolve 'deb.debian.org'
W: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/InRelease  Could not resolve 'deb.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Removing intermediate container 022301215bfb
 ---> 054d32710b62
Step 4/11 : RUN apt-get install -y openssh-server
 ---> Running in 802d2fa37b8d
Reading package lists...
Building dependency tree...
Reading state information...
Package openssh-server is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'openssh-server' has no installation candidate
The command '/bin/sh -c apt-get install -y openssh-server' returned a non-zero code: 100

这些都是我在Ubuntu 18.04上做的。我不明白为什么会发生这种情况,以及如何解决这个问题。有人能帮上忙吗?

EN

回答 4

Stack Overflow用户

发布于 2018-06-26 15:25:36

您应该首先检查是否能够从运行docker的主机解析deb.debian.org。您可以使用nslookup deb.debian.org或dig deb.debian.org检查这一点。

如果您无法解析from主机,请在/etc/resolv.conf文件中添加nameserver 8.8.8.8,然后重试。Docker从/etc/resolv.conf文件中复制名称服务器。

或者您可以通过创建文件/etc/docker/daemon.json来设置名称服务器

代码语言:javascript
复制
{
    "dns": ["8.8.8.8"]
}

然后重启docker服务:

代码语言:javascript
复制
$ service docker restart
票数 19
EN

Stack Overflow用户

发布于 2020-07-08 06:47:50

这并没有解决潜在的问题,但是我成功地将--network=host添加到了docker build命令中,例如sudo docker build --network=host -t ics-image .。在我的例子中,/etc/resolve.conf中的一切都是正确的,但docker使用正确的ip表时出现了问题,这是一个快速的解决方法。再说一次,这不是一个解决方案,但可能有助于调试问题。

票数 14
EN

Stack Overflow用户

发布于 2019-09-04 07:06:41

这看起来像是您的docker无法正确解析主机。要检查docker是否能够解析DNS,请执行以下命令。在某些环境中,网络管理员可能会阻止8.8.8.8。如果8.8.8.8被阻止,请使用您的本地DNS IP。

代码语言:javascript
复制
sudo docker run busybox nslookup google.com

sudo docker run --dns 8.8.8.8 busybox nslookup google.com

如果第一个命令不工作,第二个命令工作正常,则表明这是一个DNS解析问题。现在编辑/etc/docker/daemon.json并添加在上面的命令中为您工作的DNS服务器IP。

代码语言:javascript
复制
{
    "dns": ["8.8.8.8"]
}

使用以下命令重新启动docker服务以使更改生效。

代码语言:javascript
复制
service docker restart

执行以下命令,查看docker现在是否可以解析DNS名称。

代码语言:javascript
复制
sudo docker run busybox nslookup google.com
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51034120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档