Introduzione

Docker è una piattaforma di containerizzazione che consente di creare, testare e distribuire rapidamente applicazioni come container portatili e autosufficienti che possono essere praticamente eseguiti ovunque. È lo standard di fatto per l'implementazione di container ed è uno strumento essenziale per gli ingegneri DevOps e la loro pipeline di integrazione e consegna continua.

In questo articolo, spiegheremo come elencare i contenitori Docker.

Elencare i contenitori Docker

Il comando Docker per elencare i contenitori assume la forma seguente:

docker container ls [options]

Le versioni precedenti di Docker precedenti alla 1.13 utilizzano un comando diverso per elencare i contenitori:

docker ps [options]

Il comando sopra è ancora supportato nelle versioni Docker più recenti in cui il comando ps è un alias di container ls.

Per elencare il contenitore in esecuzione, eseguire il comando docker container ls senza alcuna opzione:

docker container ls

L'output sarà simile al seguente:

CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS        PORTS       NAMES
g25t256ef623    postgres     "docker-entrypoint.s…"   1 hours ago    Up 2 hours    5432/tcp    pg
2352h423454g    redis        "docker-entrypoint.s…"   2 hours ago    Up 4 hours    6379/tcp    cache
12g5g514454f    nginx        "nginx -g 'daemon of…"   1 hours ago    Up 2 hours    80/tcp      web

Ogni riga dell'output include le seguenti colonne:

  • Container ID - Una stringa alfanumerica univoca che identifica ciascun contenitore.
  • Image - L'immagine Docker utilizzata per creare il contenitore.
  • Command - Il comando che viene eseguito all'avvio del contenitore.
  • Created - Il tempo di creazione del contenitore.
  • Status - Lo stato del contenitore.
  • Ports - Le porte pubblicate del contenitore.
  • Name - Il nome del contenitore.

Se non ci sono container in esecuzione, viene visualizzata solo la riga di intestazione.

L'opzione -a, --all aggiunta al comando docker container ls stampa un elenco di tutti i contenitori:

docker container ls -a
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
124f134r2134    couchbase    "/entrypoint.sh couc…"   4 hours ago    Exited (0) 3 hours ago                db
asfbafg23g34    postgres     "docker-entrypoint.s…"   1 hours ago    Up 2 hours                5432/tcp    pg
3h425yu783k8    redis        "docker-entrypoint.s…"   3 hours ago    Up 4 hours                6379/tcp    cache
013g345yh154    nginx        "nginx -g 'daemon of…"   1 hours ago    Up 2 hours                80/tcp      web

Per impostazione predefinita, le colonne con una lunghezza superiore a un limite specificato vengono troncate. Utilizzare l'opzione --no-trunc per disabilitare il troncamento:

docker container ls --no-trunc

Per visualizzare solo gli ID dei contenitori passare l'opzione -q, --quiet:

docker container ls -q
asfbafg23g34
3h425yu783k8
013g345yh154

L'opzione --format consente di formattare l'output utilizzando un modello Go. Ad esempio, per stampare solo i nomi e lo stato dei contenitori, inclusa l'intestazione, si dovrebbe eseguire:

docker container ls --format 'table {{.Names}}\t{{.Status}}'
NAMES    STATUS
pg       Up 1 hours
cache    Up 3 hours
web      Up 1 hours

Utilizzare l'opzione -s, --size per visualizzare le dimensioni dei contenitori:

docker container ls -s

Ogni riga includerà una colonna denominata SIZE che mostra la dimensione del contenitore:

CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS        PORTS       NAMES    SIZE
asfbafg23g34    postgres     "docker-entrypoint.s…"   1 hours ago    Up 1 hours    5432/tcp    pg       86B (virtual 451MB)
3h425yu783k8    redis        "docker-entrypoint.s…"   3 hours ago    Up 3 hours    6379/tcp    cache    0B (virtual 87.1MB)
013g345yh154    nginx        "nginx -g 'daemon of…"   1 hours ago    Up 1 hours    80/tcp      web      3B (virtual 216MB)

L'opzione --last, -n indica al comando di visualizzare gli ultimi n contenitori creati, inclusi tutti gli stati. Ad esempio, per visualizzare gli ultimi due contenitori creati dovresti eseguire:

docker container ls -n 2
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
245h5453f355    couchbase    "/entrypoint.sh couc…"   4 hours ago    Exited (0) 2 hours ago                db
asfbafg23g34    postgres     "docker-entrypoint.s…"   1 hours ago    Up 1 hours                5432/tcp    pg

C'è anche un'opzione per elencare solo l'ultimo contenitore creato --latest, -l che è lo stesso di -n 1:

docker container ls -l

L' opzione --filter, -f consente di filtrare l'output in base a determinati criteri. Ad esempio, per visualizzare solo i contenitori con stato exited:

docker container ls -f "status=exited"
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
245h5453f355    couchbase    "/entrypoint.sh couc…"   4 hours ago    Exited (0) 2 hours ago                db

Per un elenco di tutti i filtri supportati, consultare la documentazione Docker

Conclusione

Un contenitore Docker è un'istanza di runtime autonoma di un'immagine. Per elencare i contenitori Docker, utilizzare il comando docker container ls o il suo alias docker ps.