Docker
Gestire le immagini
Ricerca…
Sintassi
- immagini docker [OPZIONI] [REPOSITORY [: TAG]]
- finestra mobile ispeziona [OPZIONI] CONTENITORE | IMMAGINE [CONTENITORE | IMMAGINE ...]
- docker pull [OPZIONI] NOME [: TAG | @DIGEST]
- docker rmi [OPZIONI] IMMAGINE [IMMAGINE ...]
- tag docker [OPZIONI] IMAGE [: TAG] [REGISTRYHOST /] [USERNAME /] NAME [: TAG]
Recupero di un'immagine dall'hub Docker
Normalmente, le immagini vengono estratte automaticamente da Docker Hub . Docker tenterà di estrarre qualsiasi immagine dall'hub Docker che non esiste già sull'host Docker. Ad esempio, utilizzando la docker run ubuntu
quando l'immagine ubuntu
non è già presente sull'host Docker, Docker avvierà un pull dell'ultima immagine ubuntu
. È possibile estrarre un'immagine separatamente usando la funzione di docker pull
per recuperare manualmente o aggiornare un'immagine da Docker Hub.
docker pull ubuntu
docker pull ubuntu:14.04
Esistono ulteriori opzioni per l'estrazione da un registro di immagine diverso o il prelievo di una versione specifica di un'immagine. L'indicazione di un registro alternativo viene eseguita utilizzando il nome completo dell'immagine e la versione opzionale. Ad esempio, il seguente comando tenterà di estrarre l'immagine ubuntu:14.04
dal registry.example.com
registry.example.com:
docker pull registry.example.com/username/ubuntu:14.04
Elenco delle immagini scaricate localmente
$ 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
Fare riferimento alle immagini
I comandi Docker che prendono il nome di un'immagine accettano quattro diverse forme:
genere | Esempio |
---|---|
ID breve | 693bce725149 |
Nome | hello-world (predefinito su :latest tag) |
Nome + tag | hello-world:latest |
digerire | hello-world@sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619 |
Nota: è possibile fare riferimento a un'immagine solo dal suo sommario se quell'immagine è stata originariamente tirata usando quel digest. Per visualizzare il digest per un'immagine (se disponibile), esegui docker images --digests
.
Rimozione di immagini
Il comando docker rmi
viene utilizzato per rimuovere le immagini:
docker rmi <image name>
Il nome completo dell'immagine deve essere usato per rimuovere un'immagine. A meno che l'immagine non sia stata taggata per rimuovere il nome del registro, è necessario specificarla. Per esempio:
docker rmi registry.example.com/username/myAppImage:1.3.5
È anche possibile rimuovere le immagini con il loro ID invece:
docker rmi 693bce725149
Per comodità, è possibile rimuovere le immagini con il loro ID immagine specificando solo i primi caratteri dell'ID immagine, a condizione che la sottostringa specificata non sia ambigua:
docker rmi 693
Nota: le immagini possono essere rimosse anche se esistono contenitori esistenti che utilizzano quell'immagine; docker rmi semplicemente "disegna" l'immagine.
Se nessun contenitore utilizza un'immagine, viene raccolto dai rifiuti. Se un contenitore utilizza un'immagine, l'immagine verrà raccolta dopo che tutti i contenitori che lo utilizzano vengono rimossi. Per esempio:
$ 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
Rimuovi tutte le immagini senza contenitori avviati
Per rimuovere tutte le immagini locali senza contenitori avviati, puoi fornire un elenco delle immagini come parametro:
docker rmi $(docker images -qa)
Rimuovi tutte le immagini
Se si desidera rimuovere le immagini indipendentemente dal fatto che abbiano o meno un contenitore avviato, utilizzare il flag force ( -f
):
docker rmi -f $(docker images -qa)
Rimuovi le immagini penzolanti
Se un'immagine non è contrassegnata e non viene utilizzata da alcun contenitore, è "penzolante" e può essere rimossa in questo modo:
docker images -q --no-trunc -f dangling=true | xargs -r docker rmi
Cerca nell'hub Docker le immagini
Puoi cercare Docker Hub per immagini usando il comando di ricerca :
docker search <term>
Per esempio:
$ 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]
...
Ispezionando le immagini
docker inspect <image>
L'output è in formato JSON. È possibile utilizzare l'utilità della riga di comando jq
per analizzare e stampare solo i tasti desiderati.
docker inspect <image> | jq -r '.[0].Author'
Il comando sopra mostrerà il nome dell'autore delle immagini.
Tagging delle immagini
Il tagging di un'immagine è utile per tenere traccia delle diverse versioni dell'immagine:
docker tag ubuntu:latest registry.example.com/username/ubuntu:latest
Un altro esempio di tagging:
docker tag myApp:1.4.2 myApp:latest
docker tag myApp:1.4.2 registry.example.com/company/myApp:1.4.2
Salvataggio e caricamento di immagini Docker
docker save -o ubuntu.latest.tar ubuntu:latest
Questo comando salverà l' ubuntu:latest
immagine come archivio di tarball nella directory corrente con il nome ubuntu.latest.tar
. Questo archivio tarball può quindi essere spostato su un altro host, ad esempio utilizzando rsync
o archiviato in archivio.
Una volta che il tarball è stato spostato, il seguente comando creerà un'immagine dal file:
docker load -i /tmp/ubuntu.latest.tar
Ora è possibile creare contenitori da ubuntu:latest
immagine come al solito.