Wie starte ich wget im Ubuntu Docker Image?

79

Ich versuche, ein Debian-Paket wie folgt in einen Ubuntu-Container herunterzuladen:

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

Ich bekomme

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

Ich habe wgetDocker bereits wie folgt installiert :

run ubuntu:14.04 apt-get install wget

Wie kann ich eine Datei herunterladen?

Marian Klühspies
quelle

Antworten:

117

Sie müssen es zuerst installieren. Erstellen Sie ein neues Dockerfileund installieren Sie wget darin:

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

Erstellen Sie dann das Image:

docker build -t my-ubuntu .

Führen Sie es schließlich aus:

docker run my-ubuntu wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.8.2-omnibus.1-1_amd64.deb
Thomas Orozco
quelle
12
@ Nachbar90 Jeder docker runBefehl wird in einem isolierten Container ausgeführt. Was auch immer Sie im ersten Container installiert haben, ist im zweiten Container nicht vorhanden. Sie sollten wahrscheinlich etwas mehr darüber lesen, was Container sind und wie sie funktionieren.
Thomas Orozco
1
Wie können Sie die Ergebnisdatei des letzten Laufs an Ihr lokales Dateisystem weiterleiten?
hhh
Es funktioniert gut, aber ich wollte nach der Paketversion fragen. Andernfalls werden die Docker-Flusen nicht passiert.
ishmam999
31

Ich hatte dieses Problem vor kurzem, wo apt install wgetnichts gefunden wird. Wie sich herausstellte, apt updatewurde nie gelaufen.

apt update
apt install wget

Nachdem wir dies mit einem Kollegen besprochen hatten, überlegten wir, dass dies apt updatewahrscheinlich nicht ausgeführt wird, um Zeit und Platz im Docker-Image zu sparen.

Lincoln
quelle
hatte Docker Ubuntu Container durch einfaches Ausführen von Docker Pulll Ubuntu und später in Bash installiert, bekam ein "apt nicht gefunden Problem". Das hat bei mir funktioniert. Danke
veritas
5

Wenn Sie den Ubuntu-Container direkt ohne eine lokale Docker-Datei ausführen, können Sie in den Container ssh und die Root-Steuerung aktivieren, indem Sie sudann eingebenapt-get install -y wget

iksnae
quelle