我怎么能执行'apt-get安装'docker上的Ubuntu的包含?
首先,我使用下面的命令安装并运行docker。
docker run -i -t ubuntu /bin/bash
然后我执行下面的命令。
root@d444a77039e7:/# apt-get update 0% [Connecting to archive.ubuntu.com (91.189.92.200)]
它一直封锁
然后我跑了下面的命令,但遇到了问题。
root@d444a77039e7:/# apt-get install nodejs Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package nodejs
然后我设置如下的http和https代理,但也失败了。
root@d444a77039e7:/# export HTTP_PROXY=http://proxy.xxx.com root@d444a77039e7:/# export HTTPS_PROXY=http://proxy.xxx.com
你能告诉我如何解决这个问题? 谢谢。 我的主机是redhat5.9,它不支持最新版本的nodejs。 所以我打算把它安装在docker引擎上。
这意味着你的docker build还没有用新的docker 1.9+ build-arg参数启动 。 这将避免在Dockerfile中放置完整的代理(可能包括您的凭据):
您可以在Dockerfile中使用
ENV
指令来定义variables值。 这些值坚持在build成的形象。 但是,往往坚持不是你想要的。 用户想要根据他们在哪个主机上构build图像来指定不同的variables。一个很好的例子是用于拉取中间文件的
http_proxy
或源代码版本。ARG
指令允许Dockerfile
作者定义用户可以在构build时使用--build-arg
标志设置的值:
$ docker build --build-arg HTTP_PROXY=http://10.20.30.2:1234 .
该标志允许您在
Dockerfile
的RUN
指令中Dockerfile
像常规环境variables一样访问的构build时variables。 而且,这些值不会像ENV
值一样保留在中间或最终图像中。
尝试用小写字母。
export http_proxy=http://proxy.xxx.com export https_proxy=http://proxy.xxx.com
超过这个问题的正确方法是,你可以用下面的Dockerfile
创build一个新的镜像,你不需要手动设置它。
FROM ubuntu ENV http_proxy http://proxy.xxx.com ENV https_proxy http://proxy.xxx.com