繁体   English   中英

我如何在docker ubuntu contains上执行'apt-get install'?

[英]How could I execute 'apt-get install' on docker ubuntu contain?

首先,我使用以下命令安装并运行了docker contains。

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引擎上。

尝试使用小写字母。

export http_proxy=http://proxy.xxx.com
export https_proxy=http://proxy.xxx.com

解决此问题的正确方法是,您可以在Dockerfile下面创建一个新映像,这样,您就不再需要手动对其进行设置。

FROM ubuntu
ENV http_proxy http://proxy.xxx.com
ENV https_proxy http://proxy.xxx.com

这意味着您的docker构建尚未使用新的docker 1.9+ build-arg参数启动 这样可以避免将完整的代理(有时可能包含您的凭据)放入Dockerfile中:

您可以在Dockerfile中使用ENV指令来定义变量值。 这些值将保留在生成的映像中。 但是,持久性通常不是您想要的。 用户希望根据在其上构建映像的主机来不同地指定变量。

一个很好的例子是http_proxy或用于拉取中间文件的源版本。 ARG指令允许Dockerfile作者使用--build-arg标志定义用户可以在构建时设置的值:

$ docker build --build-arg HTTP_PROXY=http://10.20.30.2:1234 .

此标志允许您传递在DockerfileRUN指令中像常规环境变量一样访问的构建时变量。 而且,这些值不会像ENV值那样保留在中间或最终图像中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM