首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >docker生成失败,无法解析'archive.ubuntu.com‘

docker生成失败,无法解析'archive.ubuntu.com‘
EN

Stack Overflow用户
提问于 2015-12-08 03:19:26
回答 4查看 10.2K关注 0票数 4

我无法使用以下Dockerfile构建我的镜像:

代码语言:javascript
复制
FROM ubuntu

RUN apt-get -y update && apt-get -y install \
nodejs npm ssh

# cache npm install when package.json hasn't changed
WORKDIR /tmp
ADD package.json package.json
RUN npm install
RUN npm install -g pm2

RUN mkdir /sparrow
RUN cp -a /tmp/node_modules /sparrow

WORKDIR /sparrow
ADD . /sparrow/
RUN npm run build

# ssh keys
WORKDIR /root
RUN mv /sparrow/.ssh /root/

# upload js and css
WORKDIR /sparrow/build
# UPLOAD TO S3!

# go back to /sparrow
WORKDIR /sparrow

ENV NODE_ENV production
ENV NODE_PATH "./src"

EXPOSE 8000
CMD ["pm2", "start", "./bin/server.js", "--no-daemon", "-i", "0"]

似乎它在连接到互联网上安装ubuntu包时遇到了问题,并且失败了:

代码语言:javascript
复制
Err http://archive.ubuntu.com trusty InRelease

Err http://archive.ubuntu.com trusty-updates InRelease

Err http://archive.ubuntu.com trusty-security InRelease

Err http://archive.ubuntu.com trusty Release.gpg
  Could not resolve 'archive.ubuntu.com'
Err http://archive.ubuntu.com trusty-updates Release.gpg
  Could not resolve 'archive.ubuntu.com'
Err http://archive.ubuntu.com trusty-security Release.gpg
  Could not resolve 'archive.ubuntu.com'
Reading package lists...
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/InRelease

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/InRelease

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/InRelease

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/Release.gpg  Could not resolve 'archive.ubuntu.com'

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/Release.gpg  Could not resolve 'archive.ubuntu.com'

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/Release.gpg  Could not resolve 'archive.ubuntu.com'

W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package nodejs
E: Unable to locate package npm

对如何解决或测试这个问题有什么建议吗?在El Capitan OSX上运行

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2015-12-08 08:01:43

这个问题已经在上得到了回答

这也会影响yum和其他repo管理器,因为我们希望它们是可访问的,但容器只有主机中允许的网络设置。

我喜欢在脚本的开头添加以下几行:

代码语言:javascript
复制
#DNS update: This is needed to run yum and to let the docker build process access the internet. 
RUN "sh" "-c" "echo nameserver 8.8.8.8 >> /etc/resolv.conf"

更新:来自下面的评论:当你在网络之间移动时,比如说在wifi网络之间,或者在家和工作之间,容器不知道它在一个新的网络中。重启VM或Docker机器是最好的修复方法。

票数 8
EN

Stack Overflow用户

发布于 2016-10-06 22:19:30

在我的Ubuntu主机上,/etc/default/docker中有以下条目

代码语言:javascript
复制
DOCKER_OPTS="--dns 172.21.32.182"

然后:

代码语言:javascript
复制
sudo systemctl daemon-reload
sudo systemctl restart docker

已帮助解决网络连接问题。当然,您需要将172.21.32.182替换为您的dns。

票数 4
EN

Stack Overflow用户

发布于 2015-12-08 11:09:47

参见https://github.com/boot2docker/boot2docker/issues/451#issuecomment-65432123。可能发生的情况是,您的VirtualBox NAT DNS代理具有过时的路由。通常情况下,您必须重新启动虚拟机才能使其再次工作。

另一种解决方法是让VM使用您的主机解析器(应该在DHCP分发新的名称服务器时进行更新)。假设您的机器在Docker Machine下命名为dev,您可以执行以下操作:

代码语言:javascript
复制
docker-machine stop dev
VBoxManage modifyvm dev --natdnsproxy1 off --natdnshostresolver1 off
docker-machine start dev
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34141438

复制
相关文章

相似问题

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