Come elenchi tutti i contenitori Docker presenti sul tuo sistema?
Ci sono due modi per farlo:
- Utilizzo di
docker ps
comando (metodo più vecchio e popolare) - Utilizzo di
docker container
comando (metodo più nuovo e meno conosciuto)
Consentitemi di elencare rapidamente i comandi con gli esempi più comuni per un rapido riferimento.
comando ps | comando contenitore | Display dei comandi |
---|---|---|
docker ps | contenitore Docker ls | contenitori in esecuzione |
docker ps -a | contenitore Docker ls -a | tutti i contenitori |
docker ps -f "status=exited" | contenitore Docker ls -f "status=exited" | contenitori fermati |
docker ps -q | contenitore Docker ls -q | ID dei contenitori in esecuzione |
docker ps -l | contenitore Docker ls -l | ultimo contenitore creato |
Come puoi vedere, entrambi ps
e container
i comandi sono identici alle loro opzioni.
Tuttavia, poiché docker vuole organizzare correttamente i comandi, consiglia di utilizzare il docker container ls
comando.
Per questo motivo utilizzerò docker container ls
comando negli esempi dettagliati.
Mostra i contenitori docker in esecuzione
Senza alcuna opzione, vedrai solo i contenitori in esecuzione.
docker container ls
L'output è dettagliato:
[email protected]:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f03e48cb07ea ubuntu "bash" 8 seconds ago Up 6 seconds ubuntu-c-1
93f84eb0f579 alpine "/bin/sh" 23 seconds ago Up 22 seconds alp_con2
Se è la prima volta che vedi questo output, lascia che ti spieghi i diversi elementi dell'output:
Container ID
- ID numerico univoco per identificare un contenitoreImage
- Immagine Docker che ha creato il contenitoreCommand
- Il comando predefinito che viene eseguito durante l'avvio di un containerCreated
- Tempo relativo in cui è stato creato il contenitoreStatus
- Lo stato del container (verrà spiegato più avanti)Ports
- Pubblicati i porti del containerName
- Nome del contenitore. Se nessuno viene fornito, viene comunque assegnato un nome casuale.
Elenca tutti i contenitori docker
Se vuoi vedere tutti i container sul tuo sistema, usa l'opzione -a
.
docker container ls -a
Ecco un esempio di output e puoi vedere che ora mostra anche diversi container fermi.
[email protected]:~$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f03e48cb07ea ubuntu "bash" 37 minutes ago Up 37 minutes ubuntu-c-1
93f84eb0f579 alpine "/bin/sh" 37 minutes ago Up 37 minutes alp_con2
1c1c04a84186 alpine "bash" 38 minutes ago Created alp_con
6fbc4bf4897b ubuntu "/bin/bash" 2 hours ago Exited (0) 2 hours ago fervent_hofstadter
8b9565ba7661 alpine "/bin/sh" 2 hours ago Exited (0) 2 hours ago beautiful_williamson
853e748608bc hello-world "/hello" 2 hours ago Exited (0) 2 hours ago stoic_engelbart
Visualizza solo i contenitori fermi
Se vuoi elencare solo i contenitori fermi, puoi filtrare l'output su exited
stato.
docker container ls --filter "status=exited"
Ecco l'output filtrato:
[email protected]:~$ docker container ls --filter "status=exited"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6fbc4bf4897b ubuntu "/bin/bash" 2 hours ago Exited (0) 2 hours ago fervent_hofstadter
8b9565ba7661 alpine "/bin/sh" 2 hours ago Exited (0) 2 hours ago beautiful_williamson
853e748608bc hello-world "/hello" 2 hours ago Exited (0) 2 hours ago stoic_engelbart
Il exited
lo stato è per i contenitori fermi. Sono disponibili alcuni altri stati per i contenitori che puoi utilizzare per scopi diversi:
created
- Un contenitore che è stato creato ma non avviatorestarting
- Un container in fase di riavviorunning
- Un contenitore funzionantepaused
- Un contenitore i cui processi sono stati sospesiexited
- Un container fermodead
- Un contenitore che è stato tentato di arrestare ma non è riuscito
In effetti, il filtraggio non è limitato allo stato, puoi filtrare in base ad altri elementi dell'output dell'elenco del contenitore come ID contenitore, nome o immagine. Il prossimo esempio utilizza questo concetto.
Mostra i contenitori associati a un'immagine
Puoi utilizzare i filtri per visualizzare tutti i contenitori associati a una determinata immagine solo utilizzando il ancestor
filtro.
docker container ls -a --filter "ancestor=image_name"
Ecco un output che mostra tutti i contenitori associati all'immagine della finestra mobile di Alpine Linux.
[email protected]:~$ docker container ls -a --filter "ancestor=alpine"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
93f84eb0f579 alpine "/bin/sh" 48 minutes ago Up 48 minutes alp_con2
1c1c04a84186 alpine "bash" 49 minutes ago Created alp_con
8b9565ba7661 alpine "/bin/sh" 2 hours ago Exited (0) 2 hours ago beautiful_williamson
Visualizza solo ID contenitore
Hai notato che tutti i comandi precedenti hanno un output dettagliato sui contenitori?
Se non hai bisogno di informazioni aggiuntive come il nome del contenitore, l'immagine associata, il suo stato, puoi utilizzare l'opzione tranquilla -q
.
Ad esempio, se utilizzo -q
opzione nell'esempio precedente, mi fornisce solo gli ID di tutti i contenitori associati ad Alpine Linux.
[email protected]:~$ docker container ls -a -q --filter "ancestor=alpine"
93f84eb0f579
1c1c04a84186
8b9565ba7661
Questo è utile in situazioni come la rimozione di tutti i contenitori di un'immagine Docker.
Bene, è abbastanza per questo tutorial sulla finestra mobile. Penso di aver menzionato abbastanza casi d'uso per elencare i contenitori nella finestra mobile. Rimani iscritto per altri tutorial di questo tipo.