Node.js 我如何执行';apt-get-install';在docker ubuntu上包含什么?

Node.js 我如何执行';apt-get-install';在docker ubuntu上包含什么?,node.js,ubuntu,docker,Node.js,Ubuntu,Docker,首先,我使用下面的命令安装并运行docker contain 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 packag

首先,我使用下面的命令安装并运行docker contain

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

试着用小写字母

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构建尚未启动。这样可以避免将完整代理(有时可能包括您的凭据)放入Dockerfile:

您可以在Dockerfile中使用
ENV
指令定义变量值。这些值将保留在生成的映像中。然而,坚持往往不是你想要的。用户希望根据构建映像的主机的不同来指定不同的变量

一个很好的例子是
http\u proxy
或用于提取中间文件的源版本。
ARG
指令允许
Dockerfile
作者定义用户可以在生成时使用
--build ARG
标志设置的值:

此标志允许您传递构建时变量,这些变量与
Dockerfile
RUN
指令中的常规环境变量类似。此外,这些值不会像
ENV
值一样保留在中间或最终图像中


这意味着您的docker构建尚未启动。这样可以避免将完整代理(有时可能包括您的凭据)放入Dockerfile:

您可以在Dockerfile中使用
ENV
指令定义变量值。这些值将保留在生成的映像中。然而,坚持往往不是你想要的。用户希望根据构建映像的主机的不同来指定不同的变量

一个很好的例子是
http\u proxy
或用于提取中间文件的源版本。
ARG
指令允许
Dockerfile
作者定义用户可以在生成时使用
--build ARG
标志设置的值:

此标志允许您传递构建时变量,这些变量与
Dockerfile
RUN
指令中的常规环境变量类似。此外,这些值不会像
ENV
值一样保留在中间或最终图像中


在相关说明中,如果要确保获得最新版本的node(许多distro Repo不经常更新),可以按照说明操作。在相关说明中,如果要确保获得最新版本的node(许多distro Repo不经常更新),可以按照说明操作。谢谢。但我使用的是docker hub提供的docker映像(ubuntu映像),我无法对其进行任何更改。@liamxu该映像与主机上安装的docker版本无关:您需要在主机上安装最新的docker,然后构建/使用您想要的任何docker映像。谢谢。但我使用的是docker hub提供的docker映像(ubuntu映像),我无法对其进行任何更改。@liamxu该映像与主机上安装的docker版本无关:您需要主机上最新的docker,然后构建/使用您想要的任何docker映像。@askb我看到您用错误的答案直接编辑了我的答案。你不应该这样做,纠正拼写或其他东西是可以的,但不要纠正代码。如果您有一些建议,请跟随评论。您试图改变的是,您认为https rquest时代理服务器必须是https,但并不总是这样。在大多数情况下,我们只有一个代理服务器来处理http和https请求。对此我深表歉意,因为我可能弄错了。您的答案中有两个
ENV
条目指向同一个代理url,但是
Dockerfile
中提到了
https\u proxy
,认为您可能在早期导出中也漏掉了https。@askb我看到您用错误的答案直接编辑了我的答案。你不应该这样做,纠正拼写或其他东西是可以的,但不要纠正代码。如果您有一些建议,请跟随评论。您试图改变的是,您认为https rquest时代理服务器必须是https,但并不总是这样。在大多数情况下,我们只有一个代理服务器来处理http和https请求。对此我深表歉意,因为我可能弄错了。您的答案中有两个
ENV
条目指向同一个代理url,但是
Dockerfile
中提到了
https\u proxy
,认为您可能在早期导出中也漏掉了https。