GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi utili del comando Docker ps

Uno dei primi comandi Docker che usi è docker ps comando. Mostra i contenitori in esecuzione:

docker ps

In realtà, l'esecuzione di questo comando fornisce un elenco di contenitori in esecuzione e il loro ID contenitore univoco, il nome dell'immagine, il comando che sta eseguendo, il tempo trascorso dall'esecuzione (tempo di attività) e le porte che sta utilizzando.

Ma puoi fare un po' di più con esso. Puoi visualizzare i contenitori interrotti, filtrare il risultato o semplicemente visualizzare gli ID dei contenitori.

Diamo uno sguardo un po' più dettagliato a questo comando Docker essenziale.

Il comando docker ps

Docker ha un alias per mostrare tutti i contenitori in esecuzione con una convenzione di denominazione POSIX amichevole.

Questo è il ps sottocomando in Docker. È un alias di docker container ls . Che, come puoi immaginare, viene utilizzato per elencare i contenitori docker.

Ecco un esempio di esecuzione di docker ps sul mio computer:

$ docker ps 
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

Come puoi vedere, questo comando mostra i dettagli su tutti i container in esecuzione.

I dettagli mostrati sono l'ID univoco del container, il nome dell'immagine, il comando che il container sta eseguendo, la data di creazione del container, il tempo di attività, le porte mappate e il nome del container.

Come amministratore di sistema, utilizzerai spesso questo comando in uno script. Docker fornisce alcune opzioni che possono essere utili quando esegui docker ps in uno script.

Mostra tutti i container (non solo quelli in esecuzione)

Come UNIX ps comando viene utilizzato per mostrare i processi (programmi in esecuzione), Docker si comporta in modo simile.

Esecuzione di docker ps mostrerà solo i contenitori Docker attivi.

Se interrompi un container in esecuzione, esiste ancora, solo che non è più in esecuzione.

Per vedere i contenitori che si trovano nello stato di arresto, usa --all (o -a ) opzione in questo modo:

docker ps --all

Ho interrotto il contenitore transmission_web . Vediamo cosa ottengo nell'output.

$ docker ps -a
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

Come puoi vedere, il -a l'opzione mostra anche un contenitore che è stato arrestato.

Filtra l'output di docker ps per risultati più accurati

La docker ps comando ha un'opzione molto utile, --filter (o -f in breve).

Come evidente dal nome dell'opzione, puoi filtrare i contenitori utilizzando i seguenti campi:

  • id
  • name
  • label
  • exited
  • status
  • ancestor
  • since
  • volume
  • publish
  • health
  • isolation

Ho creato un container chiamato nextcloud_server . Voglio vedere i dettagli sui contenitori, ma solo quelli con il nome che sto cercando. Vediamo come utilizzare il name filtro.

$ docker ps --filter "name=nextcloud_server"
CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                                   NAMES
58c7013a49c3   nextcloud   "/entrypoint.sh apac…"   3 hours ago   Up 3 hours   0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server

Ho diversi contenitori in esecuzione, ma passo usando il name filter mi mostra solo i contenitori che corrispondono al nome.

Proviamo a utilizzare l'id filtro. Ho un contenitore MariaDB con l'ID "140161b8b139". Userò il seguente comando per ottenerlo.

$ docker ps --filter "id=140161b8b139"
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS        PORTS      NAMES
140161b8b139   mariadb   "docker-entrypoint.s…"   15 hours ago   Up 15 hours   3306/tcp   nextcloud_db

Facile! Ho ricevuto il contenitore con l'ID corrispondente.

Mostra i contenitori nell'ordine in cui sono stati creati

Sì, puoi elencare i contenitori ordinati nell'ordine della loro data di creazione usando il --latest (o l in breve).

L'ordine è l'ultimo in alto e il più vecchio in basso.

Ecco un esempio di output dell'esecuzione del comando docker ps --latest sul mio computer:

$ docker ps --latest
CONTAINER ID   IMAGE                              COMMAND                  CREATED        STATUS                      PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   15 hours ago   Up 15 hours                 0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  16 hours ago   Exited (137) 16 hours ago                                           transmission_web

Ci sono alcuni problemi con questo comando.

  • Tutti i contenitori utilizzati come "dipendenze" non verranno elencati
  • L'output include tutti gli stati del contenitore (ciò significa che verranno elencati anche i contenitori che sono stati interrotti)

Avevo creato il contenitore "nextcloud_server" con MariaDB come sua "dipendenza". Quindi quel contenitore non è elencato nell'output quando si utilizza --latest bandiera.

Scripting molto? Mostra solo gli ID contenitore

Si supponga di scrivere uno script e di voler gestire solo gli ID contenitore in modo da poter eseguire azioni sui contenitori. Per questo, puoi usare --quiet (o -q in breve) opzione.

Di seguito è riportato l'output dell'esecuzione di docker ps -q sul mio computer.

$ docker ps -q
58c7013a49c3
140161b8b139

Come puoi vedere, l'output consiste solo di Container ID (di container in esecuzione) e nient'altro.

Come puoi vedere, c'è di più nel comando Docker ps oltre alla semplice visualizzazione delle informazioni sul contenitore in esecuzione. Fammi sapere se hai imparato qualcosa di nuovo o se conosci qualche altro esempio utile di docker ps comando.


Linux
  1. 12 utili esempi di comandi Wget in Linux

  2. ls Command in Linux:17 esempi utili spiegati

  3. 5 Esempi pratici del comando dd in Linux

  4. Come utilizzare il comando id in Linux:5 esempi utili

  5. 5 Esempi utili del comando firewall-cmd

Esempi utili di comandi Wget nel sistema Linux

20 utili esempi di comandi del volume Docker per gli sviluppatori moderni

10 esempi utili del comando di ordinamento in Linux

Esempi essenziali del comando ps in Linux

15 esempi super utili del comando Trova in Linux

12 Esempi utili di comandi data di Linux