如何在Ubuntu Docker映像中运行wget?


79

我正在尝试在Ubuntu容器中下载Debian软件包,如下所示:

sudo docker run ubuntu:14.04 wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.8.2-omnibus.1-1_amd64.deb

我懂了

exec: "wget": executable file not found in $PATH

我已经安装wget了docker,如下所示:

run ubuntu:14.04 apt-get install wget

如何下载文件?

Answers:


117

您需要先安装它。创建一个新的Dockerfile,并在其中安装wget:

FROM ubuntu:14.04
RUN  apt-get update \
  && apt-get install -y wget \
  && rm -rf /var/lib/apt/lists/*

然后,构建该图像:

docker build -t my-ubuntu .

最后,运行它:

docker run my-ubuntu wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.8.2-omnibus.1-1_amd64.deb

12
@ Nachbar90每个docker run命令都在一个隔离的容器中运行,因此,您在第一个容器中安装的任何内容都不会出现在第二个容器中。您可能应该阅读更多有关什么是容器以及它们如何工作的信息。
Thomas Orozco 2015年

1
您如何将上次运行的结果文件转发到本地文件系统?
hhh

它工作正常,但我想询问软件包的版本。否则,它不会通过docker lint。
ishmam999

31

我最近有这个问题,在哪里apt install wget什么都找不到。事实证明,apt update它从未运行过。

apt update
apt install wget

与同事讨论此事后,我们想过apt update可能为了节省docker映像中的时间和空间而无法运行。


通过简单地将docker pulll ubuntu安装到Docker ubuntu容器,然后将其安装到bash中,出现了“找不到apt问题”。这对我有用。谢谢
veritas,

5

如果直接在没有本地Dockerfile的情况下直接运行ubuntu容器,则可以将ssh放入该容器并通过输入suthen启用root控制apt-get install -y wget

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.