docker image¶
Docker Kommandos für Images:
Kommandos |
Funktionalität |
---|---|
docker image … |
Hauptbefehl: Images verwalten |
docker build |
neues Image mit Dockerfile |
docker images |
Images auflisten: docker image ls |
docker history |
Build-History eines Images |
docker inspect |
lokale Images analysieren |
docker pull |
Image herunterladen / aktualisieren |
docker push |
Image in Docker Repo hochladen |
docker rmi |
Image löschen |
docker save / load |
aus Images einen Tarball erzeugen |
docker tag |
Image-Namen bzw. -Tag anpassen |
docker pull
Wenn nur ein Imagename angegeben wird, dann wird das Image mit Tag :latest gepullt!
Images mit Tag:latest müssen nicht immer die aktuellsten Images sein!
Kompletter Aufruf: docker pull [OPTIONS] REGISTRY:REG-PORT/IMAGE:TAG|@DIGEST
Optionen: -a | --all-tags
um alle Images(:tags) mit einem Imagenamen zu pullen (gesamtes Image-Repository)
docker images oder auch docker image ls
Mit Option --no-trunc
komplettere Ausgaben und -q
für quiet, was einfach die (kurzen) IDs ausgibt!
Alle Images auflisten:
docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
mariadb <none> 2bdd97ca79d9 6 days ago 366MB
joebrandes/testwebserver latest 9ff70d3871d4 7 days ago 183MB
<none> <none> 7c54877665f7 7 days ago 183MB
<none> <none> 6a247201e8a3 7 days ago 183MB
<none> <none> aef9419d7b92 7 days ago 183MB
<none> <none> c21c0c4fe351 7 days ago 183MB
<none> <none> a3ff1c7635da 7 days ago 183MB
<none> <none> 2bd50cd1f5b1 7 days ago 86.7MB
<none> <none> 86e536f3da5c 7 days ago 86.7MB
hello-world latest fce289e99eb9 2 weeks ago 1.84kB
wordpress latest 9ec2fcdda9ef 2 weeks ago 420MB
mariadb latest 4f2e75647d2a 2 weeks ago 366MB
ubuntu 18.10 d4452947e3fa 2 weeks ago 73.7MB
ubuntu 18.04 1d9c17228a9e 2 weeks ago 86.7MB
alpine latest 3f53bb00af94 3 weeks ago 4.41MB
Die hier aufgelisteten none:none
Images enstehen durch das Layersystem von Images und belegen
und verschwenden keinen Platz im System!
Problematisch sind Image die mit none:none
bei normalem docker images
(ohne -a
) auftauchen:
Dangling Images - verwaiste Einträge
Finden von Dangling Images: docker images -f "dangling=true"
Löschen / Aufräumen: per Filtern oder mit docker image prune
docker images -f "dangling=true" -q | xargs -n1 docker rmi -f
# oder einfach mit:
docker image prune
docker inspect oder auch docker image inspect
Formatierte Ausgaben mit Parameter --format
docker inspect --format='{{.Config.Cmd}}' alpine:latest
[/bin/sh]
# oder einfacher mit:
docker inspect alpine:latest | grep -i Cmd
Das lässt sich auch wieder aufbereiten (Tool jq
):
docker image inspect alpine:latest | jq -CS # C Color; S sortiert
docker image inspect alpine:latest | jq -CS .[0].Config.Cmd # Zugriff auf Array
[
"/bin/sh"
]
Die Ausgabe von Docker Kommandos ist auch über Go-Templates möglich: (Go Templates )
docker image inspect alpine:latest --format '{{.Config.Cmd}}'
[/bin/sh]
docker image inspect alpine:latest --format '{{json .Config.Env}}' | jq
[
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
]
Diese Ausgabeformate lassen sich auch bei anderen cmd-Techniken nutzen (siehe docker container ls ...
).
docker save | load
Speichert Images in einem Tarball - nicht mit dem Export / Import von Containern verwechseln
docker save -o ~/alpine-out.tar alpine
tar -tvf alpine-out.tar
-rw-r--r-- 0/0 1511 2018-12-21 01:21 3f53bb00af943dfdf81...129d57d5991.json
drwxr-xr-x 0/0 0 2018-12-21 01:21 a21b1050952cdc06771...57cae64904b/
-rw-r--r-- 0/0 3 2018-12-21 01:21 a21b1050952cdc06771...57cae64904b/VERSION
-rw-r--r-- 0/0 1184 2018-12-21 01:21 a21b1050952cdc06771...57cae64904b/json
-rw-r--r-- 0/0 4672000 2018-12-21 01:21 a21b1050952cdc06771...57cae64904b/layer.tar
-rw-r--r-- 0/0 202 1970-01-01 01:00 manifest.json
-rw-r--r-- 0/0 89 1970-01-01 01:00 repositories
In layer.tar
befindet sich das eigentliche Image mit den Ordnerstrukturen /
, /bin
, /usr
, …
Diese Sicherung lässt sich dann auf einem anderen Rechner wieder loaden.