Docker
Bilder verwalten
Suche…
Syntax
- Docker-Bilder [OPTIONEN] [WIEDERGABE [: TAG]]
- Docker inspizieren [OPTIONEN] CONTAINER | IMAGE [CONTAINER | IMAGE ...]
- Docker ziehen [OPTIONEN] NAME [: TAG | @DIGEST]
- docker rmi [OPTIONEN] BILD [BILD ...]
- Docker-Tag [OPTIONEN] IMAGE [: TAG] [REGISTRYHOST /] [Benutzername] /] NAME [: TAG]
Abrufen eines Bildes von Docker Hub
Normalerweise werden Bilder automatisch vom Docker Hub abgerufen . Docker versucht, ein beliebiges Bild von Docker Hub abzurufen, das auf dem Docker-Host noch nicht vorhanden ist. Wenn Sie beispielsweise docker run ubuntu
wenn ubuntu
Image nicht bereits auf dem Docker-Host vorhanden ist, wird Docker dazu veranlasst, das aktuelle ubuntu
Image zu ziehen. Sie können ein Bild separat docker pull
, indem Sie ein docker pull
, um ein Bild manuell von Docker Hub abzurufen oder zu aktualisieren.
docker pull ubuntu
docker pull ubuntu:14.04
Zusätzliche Optionen zum Abrufen aus einer anderen Image-Registrierung oder zum Abrufen einer bestimmten Version eines Images sind vorhanden. Das Anzeigen einer alternativen Registrierung erfolgt unter Verwendung des vollständigen Image-Namens und der optionalen Version. Mit dem folgenden Befehl wird beispielsweise versucht, das ubuntu:14.04
Image aus der registry.example.com
Registry.example.com zu ziehen:
docker pull registry.example.com/username/ubuntu:14.04
Lokal heruntergeladene Bilder auflisten
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 693bce725149 6 days ago 967 B
postgres 9.5 0f3af79d8673 10 weeks ago 265.7 MB
postgres latest 0f3af79d8673 10 weeks ago 265.7 MB
Bilder referenzieren
Docker-Befehle, die den Namen eines Bildes annehmen, akzeptieren vier verschiedene Formen:
Art | Beispiel |
---|---|
Kurze ID | 693bce725149 |
Name | hello-world (Standardeinstellung :latest tag) |
Name + Tag | hello-world:latest |
Verdauen | hello-world@sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619 |
Hinweis: Sie können auf ein Bild nur durch seinen Digest verweisen, wenn dieses Bild ursprünglich mit diesem Digest gezogen wurde. Um den Digest für ein Bild docker images --digests
(falls vorhanden), führen Sie docker images --digests
.
Bilder entfernen
Der docker rmi
Befehl docker rmi
wird zum Entfernen von Bildern verwendet:
docker rmi <image name>
Der vollständige Bildname muss verwendet werden, um ein Bild zu entfernen. Wenn das Image nicht zum Entfernen des Registrierungsnamens markiert wurde, muss es angegeben werden. Zum Beispiel:
docker rmi registry.example.com/username/myAppImage:1.3.5
Es ist auch möglich, Bilder nach ihrer ID zu entfernen:
docker rmi 693bce725149
Der Einfachheit halber ist es möglich, Bilder anhand ihrer Bild-ID zu entfernen, indem Sie nur die ersten paar Zeichen der Bild-ID angeben, sofern die angegebene Unterzeichenfolge eindeutig ist:
docker rmi 693
Hinweis: Bilder können auch entfernt werden, wenn vorhandene Container dieses Bild verwenden. docker rmi "hebt" das Bild einfach auf.
Wenn kein Container ein Bild verwendet, wird Müll gesammelt. Wenn ein Container ein Bild verwendet, wird das Bild nach dem Entfernen aller Container, die es verwenden, entfernt. Zum Beispiel:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b hello-world "/hello" Less than a second ago Exited (0) 2 seconds ago small_elion
$ docker rmi hello-world
Untagged: hello-world:latest
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b 693bce725149 "/hello" Less than a second ago Exited (0) 12 seconds ago small_elion
Entfernen Sie alle Bilder ohne gestartete Container
Um alle lokalen Images zu entfernen, für die noch kein Container gestartet wurde, können Sie eine Auflistung der Images als Parameter bereitstellen:
docker rmi $(docker images -qa)
Alle Bilder entfernen
Wenn Sie Bilder entfernen möchten, unabhängig davon, ob sie einen gestarteten Container haben oder nicht, verwenden Sie das Force-Flag ( -f
):
docker rmi -f $(docker images -qa)
Entfernen Sie baumelnde Bilder
Wenn ein Bild nicht markiert ist und von keinem Container verwendet wird, ist es "baumelnd" und kann wie folgt entfernt werden:
docker images -q --no-trunc -f dangling=true | xargs -r docker rmi
Suchen Sie im Docker Hub nach Bildern
Sie können Docker Hub mit dem Suchbefehl nach Bildern durchsuchen :
docker search <term>
Zum Beispiel:
$ docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 3565 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 717 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 232 [OK]
...
Bilder prüfen
docker inspect <image>
Die Ausgabe erfolgt im JSON-Format. Sie können das jq
um nur die gewünschten Schlüssel zu analysieren und zu drucken.
docker inspect <image> | jq -r '.[0].Author'
Der obige Befehl zeigt den Autorennamen der Bilder.
Bilder kennzeichnen
Das Markieren eines Bildes ist nützlich, um verschiedene Bildversionen zu verfolgen:
docker tag ubuntu:latest registry.example.com/username/ubuntu:latest
Ein weiteres Beispiel für das Tagging:
docker tag myApp:1.4.2 myApp:latest
docker tag myApp:1.4.2 registry.example.com/company/myApp:1.4.2
Speichern und Laden von Docker-Bildern
docker save -o ubuntu.latest.tar ubuntu:latest
Dieser Befehl speichert das ubuntu:latest
Abbild als Tarball-Archiv im aktuellen Verzeichnis mit dem Namen ubuntu.latest.tar
. Dieses Archivarchiv kann dann auf einen anderen Host verschoben werden, z. B. mit rsync
, oder im Speicher archiviert werden.
Nach dem Verschieben des Archivs erstellt der folgende Befehl ein Bild aus der Datei:
docker load -i /tmp/ubuntu.latest.tar
Es ist jetzt möglich, Container aus dem ubuntu:latest
Image wie gewohnt zu erstellen.