资讯专栏INFORMATION COLUMN

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

Nosee / 601人阅读

摘要:查阅一些资料后,得知如果是启动容器无法访问外网,的时候可以添加可以使容器使用宿主机的网络访问外网,但现在是要生成镜像。

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

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

言归正传

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

创建镜像的Dockerfile如下:

FROM  alpine:latest
MAINTAINER demo 

RUN echo -e "https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/main

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 全部通过

参考1
参考2

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26966.html

相关文章

  • container-as-a-service-0x01 -- 基于Docker的私有&混合

    摘要:基于的私有云混合云构建方案苏依蜀黍是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的可移植的自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括虚拟机集群和其他的基础应用平台。 container-as-a-service-0x01 -- 基于Docker的私有云&混合云构建方案 By 苏依蜀黍 . 2016.06.07 what Docker是一...

    import. 评论0 收藏0
  • 阿里服务器中Docker安装与镜像使用【MySQL、redis快速访问

    摘要:点击去阿里云官网,找到容器镜像服务很多的阿里云服务这里都有,如网关等等入口。以下指令正常执行无报错即拥有了阿里云镜像。 文章目录 一、Linux安装Docker1...

    ormsf 评论0 收藏0
  • 阿里数据库的极致弹性之路

    摘要:今天,阿里资深技术专家天羽为我们讲述阿里数据库的极致弹性之路。二容器化弹性,提升资源效率随着单机服务器的能力提升,阿里数据库在年就开始使用单机多实例的方案,通过和文件系统目录端口的部署隔离,支持单机多实例,把单机资源利用起来。 showImg(https://segmentfault.com/img/remote/1460000017333275); 阿里妹导读:数据库从IOE(IBM...

    ispring 评论0 收藏0
  • 阿里数据库的极致弹性之路

    摘要:今天,阿里资深技术专家天羽为我们讲述阿里数据库的极致弹性之路。二容器化弹性,提升资源效率随着单机服务器的能力提升,阿里数据库在年就开始使用单机多实例的方案,通过和文件系统目录端口的部署隔离,支持单机多实例,把单机资源利用起来。 showImg(https://segmentfault.com/img/remote/1460000017333275); 阿里妹导读:数据库从IOE(IBM...

    caozhijian 评论0 收藏0
  • 解锁高性能计算与区块链应用,阿里Kubernetes服务召唤神龙

    摘要:阿里云容器服务已经发布了基于容器集群的开源区块链解决方案,利用容器技术可以在分钟之内部署完成一个生产级别安全高可用的区块链应用运行环境,帮助企业可以加速业务创新。对节点,阿里云服务会自动开启相应调度能力。 摘要: 阿里云ECS弹性裸金属服务器(神龙)已经与其容器服务全面兼容,用户可以选择在弹性裸金属服务器上直接运行容器、管控Kubernetes/Docker容器集群,如此将会获得非常出...

    KitorinZero 评论0 收藏0

发表评论

0条评论

Nosee

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<