Docker es una plataforma de creación de contenedores que le permite crear, probar e implementar rápidamente aplicaciones como contenedores portátiles y autosuficientes que pueden ejecutarse prácticamente en cualquier lugar. Es el estándar de facto para la implementación de contenedores y es una herramienta esencial para los ingenieros de DevOps y su proceso de integración y entrega continua.

En este artículo, explicaremos cómo listar contenedores Docker.

Mostrar contenedores Docker

El comando de Docker para listar contenedores tiene la siguiente forma:

docker container ls [options]

Las versiones anteriores de Docker anteriores a la 1.13 usan un comando diferente para enumerar los contenedores:

docker ps [options]

El comando anterior todavía se admite en las versiones más recientes de Docker, donde el pscomando es un alias para container ls.

Para enumerar los contenedores en ejecución, ejecute el docker container lscomando sin ninguna opción:

docker container ls

La salida se verá algo como esto:

CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS        PORTS       NAMES
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours    5432/tcp    pg
571c3a115fcf    redis        "docker-entrypoint.s…"   4 hours ago    Up 4 hours    6379/tcp    cache
05ef6d8680ba    nginx        "nginx -g 'daemon of…"   2 hours ago    Up 2 hours    80/tcp      web

Cada línea de la salida incluye las siguientes columnas:

  • Container ID– Una cadena alfanumérica única que identifica cada contenedor.
  • Image– La imagen de Docker que se utiliza para crear el contenedor.
  • Command– El comando que se ejecuta al iniciar el contenedor.
  • Created– La hora de creación del contenedor.
  • Status– El estado del contenedor.
  • Ports– Los puertos publicados del contenedor.
  • Name– El nombre del contenedor.

Si no hay contenedores en ejecución, solo se muestra la línea de encabezado.

La opción -a, le dice que imprima una lista de todos los contenedores:--alldocker container ls

docker container ls -a
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
b28cbaa91f15    couchbase    "/entrypoint.sh couc…"   5 hours ago    Exited (0) 3 hours ago                db
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours                5432/tcp    pg
571c3a115fcf    redis        "docker-entrypoint.s…"   4 hours ago    Up 4 hours                6379/tcp    cache
05ef6d8680ba    nginx        "nginx -g 'daemon of…"   2 hours ago    Up 2 hours                80/tcp      web

De forma predeterminada, las columnas con una longitud superior a un límite especificado se truncan. Use la --no-truncopción para deshabilitar el truncamiento:

docker container ls --no-trunc

-qPara mostrar solo los ID de los contenedores , pase la --quietopción:

docker container ls -q
c8bded53da86
571c3a115fcf
05ef6d8680ba

El --formatle permite formatear la salida utilizando una plantilla de Go. Por ejemplo, para imprimir solo los nombres y el estado de los contenedores, incluido el encabezado, ejecutaría:

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

Use la opción -s--sizepara ver el tamaño de los contenedores:

docker container ls -s

Cada línea incluirá una columna con el nombre SIZEque muestra el tamaño del contenedor:

CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS        PORTS       NAMES    SIZE
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours    5432/tcp    pg       63B (virtual 394MB)
571c3a115fcf    redis        "docker-entrypoint.s…"   4 hours ago    Up 4 hours    6379/tcp    cache    0B (virtual 98.2MB)
05ef6d8680ba    nginx        "nginx -g 'daemon of…"   2 hours ago    Up 2 hours    80/tcp      web      2B (virtual 126MB)

La opción --last-nle dice al comando que muestre los núltimos contenedores creados, incluidos todos los estados. Por ejemplo, para ver los dos últimos contenedores creados, ejecutaría:

docker container ls -n 2
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
b28cbaa91f15    couchbase    "/entrypoint.sh couc…"   5 hours ago    Exited (0) 3 hours ago                db
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours                5432/tcp    pg

También hay una opción para enumerar solo el último contenedor creado --latest-lque es lo mismo que -n 1:

docker container ls -l

La opción --filter-fle permite filtrar la salida según ciertos criterios.

Por ejemplo, para ver solo los contenedores con estado exited, ejecutaría:

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

Para obtener una lista de todos los filtros admitidos, consulte la documentación de Docker

Conclusión

Un contenedor de Docker es una instancia de tiempo de ejecución independiente de una imagen. Para enumerar los contenedores de Docker, use el docker container lscomando o su alias docker ps.

Si tiene alguna pregunta, por favor deje un comentario a continuación.