阿里云ECS启动容器无法访问外网

bozz · · 1708 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

初次在ECS使用docker,如文章所述有误,劳烦看官留言指正,谢过!

日期:2017-07-19
平台: 阿里云 ECS
操作系统: Centos 7
注明日期,只是辅助看官参考,随时间过去,文中所述不一定适用您遇到的问题。

言归正传

本文重点讲,ECS中docker build 不能访问外网的问题,
所以,如何安装或部署golang服务,请参考
使用alpinelinux 构建 golang http

创建镜像的Dockerfile如下:

FROM  alpine:latest
MAINTAINER demo <juest a demo>

RUN echo -e "https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/main\n\
https://mirrors.aliyun.com/alpine/v3.6/main" >> /etc/apk/repositories

RUN apk add --update curl bash && \
    rm -rf /var/cache/apk/*

RUN mkdir -p /data/go
COPY http /data/go

EXPOSE 8080

ENTRYPOINT ["/data/go/http"]

提示如下错误:

...
fetch https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/main/x86_64/APKINDEX.tar.gz
ERROR: https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.951f4ce6.tar.gz: No such file or directory
fetch https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/community/x86_64/APKINDEX.tar.gz
ERROR: https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/community: temporary error (try again later)
WARNING: Ignoring APKINDEX.d4f262b4.tar.gz: No such file or directory
ERROR: unsatisfiable constraints:
  bash (missing):
    required by: world[bash]
  curl (missing):
    required by: world[curl]
The command '/bin/sh -c apk add --update curl bash &&     rm -rf /var/cache/apk/*' returned a non-zero code: 2

因为初次使用docker,开始也不知道具体发生了什么问题,因为上面的地址和链接在本地都是可以访问的,所以猜测是docker容器不能访问外网,但是同样的Dockerfile在笔者本地环境是没有问题的,在ECS上又试了ubuntu的最新镜像启动的容器,同样是无法访问外网。
查阅一些资料后,得知如果是启动容器无法访问外网,docker run 的时候可以添加 --net=host 可以使容器使用宿主机的网络访问外网,但现在是要生成镜像docker build。
经过一番google,最后总结如下解决方案(已解决笔者遇到的问题)

在宿主机中,进行如下操作:

一、 查看宿主机的nameserver

> cat /etc/resolv.conf
domain mycompany
search mycompany
nameserver xxx.xxx.xxx.xxx

二、 创建或修改 /etc/default/docker,在其中添加或编辑如下选项

DOCKER_OPTS="--dns xxx.xxx.xxx.xxx"

三、 重启 docker

systemctl restart docker 

然后重新执行 docker build 全部通过


有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:bozz

查看原文:阿里云ECS启动容器无法访问外网

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1708 次点击  
加入收藏 微博
1 回复  |  直到 2018-08-31 22:14:31
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传