Cómo usar el comando docker container ls para listar contenedores

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás a utilizar eficazmente el comando docker container ls (también conocido como docker ps) para listar y gestionar tus contenedores Docker. Comenzarás listando solo los contenedores en ejecución, luego ampliarás la vista para incluir todos los contenedores, incluso aquellos que se han detenido.

Además, explorarás cómo filtrar la lista de contenedores según diversos criterios, como el estado y el nombre, lo que te permitirá encontrar rápidamente contenedores específicos. Finalmente, aprenderás a mostrar información adicional como el tamaño del contenedor y formatear la salida según tus necesidades, proporcionando una comprensión integral de tu entorno de contenedores.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/run -.-> lab-555114{{"Cómo usar el comando docker container ls para listar contenedores"}} docker/ps -.-> lab-555114{{"Cómo usar el comando docker container ls para listar contenedores"}} docker/stop -.-> lab-555114{{"Cómo usar el comando docker container ls para listar contenedores"}} docker/pull -.-> lab-555114{{"Cómo usar el comando docker container ls para listar contenedores"}} end

Listar contenedores en ejecución

En este paso, aprenderás cómo listar contenedores Docker en ejecución. El comando docker ps se utiliza para mostrar información sobre los contenedores activos.

Primero, ejecutemos un contenedor simple que permanecerá en ejecución. Usaremos la imagen ubuntu y ejecutaremos un comando que mantenga el contenedor activo.

docker pull ubuntu
docker run -d ubuntu sleep infinity

El comando docker pull ubuntu descarga la imagen ubuntu desde Docker Hub. El comando docker run -d ubuntu sleep infinity ejecuta un nuevo contenedor basado en la imagen ubuntu.

  • -d ejecuta el contenedor en modo desatendido (detached), lo que significa que se ejecuta en segundo plano.
  • ubuntu es el nombre de la imagen.
  • sleep infinity es el comando ejecutado dentro del contenedor, que mantiene el contenedor en ejecución indefinidamente.

Ahora, listemos los contenedores en ejecución usando el comando docker ps.

docker ps

Este comando mostrará una lista de todos los contenedores actualmente en ejecución. Deberías ver el contenedor ubuntu que acabamos de iniciar. La salida incluye información como el ID del contenedor, la imagen, el comando, tiempo de creación, estado, puertos y nombres.

Mostrar todos los contenedores incluyendo los detenidos

En el paso anterior, aprendiste a listar contenedores en ejecución usando docker ps. Sin embargo, docker ps solo muestra los contenedores que están actualmente activos. Para ver todos los contenedores, incluyendo aquellos que se han detenido, necesitas usar el flag -a.

Primero, detengamos el contenedor ubuntu que iniciamos en el paso anterior. Necesitarás el ID o nombre del contenedor, que puedes obtener del resultado de docker ps.

docker stop $(docker ps -q --filter ancestor=ubuntu)

El comando docker stop detiene un contenedor en ejecución.

  • $(docker ps -q --filter ancestor=ubuntu) es una sustitución de comando que obtiene el ID del contenedor en ejecución basado en la imagen ubuntu. El flag -q muestra solo el ID del contenedor, y --filter ancestor=ubuntu filtra por el nombre de la imagen.

Ahora, listemos todos los contenedores, incluyendo el detenido, usando docker ps -a.

docker ps -a

Este comando mostrará una lista de todos los contenedores que han sido creados, independientemente de su estado actual (en ejecución, detenidos, terminados, etc.). Deberías ver el contenedor ubuntu en la lista, y su estado debería aparecer como "Exited" (Terminado).

Filtrar contenedores por estado y nombre

En este paso, aprenderás a filtrar la lista de contenedores según su estado y nombre usando el flag --filter con el comando docker ps. Esto es útil cuando tienes muchos contenedores y necesitas encontrar algunos específicos.

Primero, iniciemos otro contenedor, pero esta vez le asignaremos un nombre específico.

docker run -d --name my-nginx nginx

El comando docker run -d --name my-nginx nginx ejecuta un nuevo contenedor basado en la imagen nginx en modo desatendido (detached) y le asigna el nombre my-nginx.

  • docker pull nginx no es explícitamente necesario aquí, ya que docker run automáticamente descargará la imagen si no está disponible localmente.

Ahora, listemos solo los contenedores en ejecución usando un filtro por estado.

docker ps --filter status=running

Este comando mostrará solo los contenedores que están actualmente en estado "running" (en ejecución). Deberías ver el contenedor my-nginx en la lista.

A continuación, filtremos los contenedores por nombre.

docker ps -a --filter name=my-nginx

Este comando listará todos los contenedores (incluyendo los detenidos, gracias a -a) que tengan el nombre my-nginx. Deberías ver el contenedor my-nginx listado con su estado.

También puedes combinar filtros. Por ejemplo, para listar contenedores en ejecución con un nombre específico:

docker ps --filter status=running --filter name=my-nginx

Esto mostrará el contenedor my-nginx solo si está actualmente en ejecución.

Mostrar el tamaño del contenedor y formatear la salida

En este paso, aprenderás a mostrar el tamaño de los contenedores y formatear la salida del comando docker ps. Conocer el tamaño de tus contenedores puede ser útil para gestionar el espacio en disco.

Por defecto, docker ps no muestra el tamaño del contenedor. Para incluir esta información, puedes usar el flag --size.

docker ps -a --size

Este comando listará todos los contenedores (en ejecución y detenidos) e incluirá dos columnas relacionadas con el tamaño: SIZE (tamaño de la capa modificable del contenedor) y VIRTUAL SIZE (tamaño total del contenedor, incluyendo las capas de la imagen).

A veces, el formato de salida predeterminado de docker ps puede no ser exactamente lo que necesitas. Puedes formatear la salida usando el flag --format. Este flag acepta una cadena de plantilla Go.

Por ejemplo, para mostrar solo el ID del contenedor, nombre de la imagen y estado, puedes usar el siguiente comando:

docker ps -a --format "{{.ID}}\t{{.Image}}\t{{.Status}}"

En esta cadena de formato:

  • {{.ID}} se refiere al ID del contenedor
  • {{.Image}} se refiere al nombre de la imagen
  • {{.Status}} se refiere al estado del contenedor
  • \t se usa como carácter de tabulación para separar las columnas

También puedes incluir información de tamaño en la salida formateada:

docker ps -a --format "{{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Size}}"

Este comando mostrará el ID del contenedor, imagen, estado y tamaño. El campo {{.Size}} incluye tanto el tamaño de la capa modificable como el tamaño virtual.

Experimenta con diferentes campos en la cadena de formato para personalizar la salida según tus necesidades. Otros campos útiles incluyen {{.Names}}, {{.CreatedAt}} y {{.Ports}}.

Resumen

En este laboratorio, aprendiste a usar el comando docker ps para listar contenedores Docker. Comenzaste listando solo los contenedores en ejecución usando docker ps, después de ejecutar inicialmente un contenedor simple de ubuntu en modo desatendido (detached). Luego aprendiste cómo mostrar todos los contenedores, incluyendo los detenidos, añadiendo el flag -a al comando docker ps, tras detener el contenedor creado previamente.