我怎么能执行'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 . 

该标志允许您在DockerfileRUN指令中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