3.1 Fundamentos del comando docker ps
El comando docker ps
es uno de los más útiles en el arsenal de Docker. Muestra una lista de contenedores en ejecución y proporciona información sobre ellos. En esta lección vamos a profundizar en cómo utilizar docker ps
para verificar el estado de tus contenedores y qué parámetros están disponibles para obtener una salida más detallada.
Por defecto, el comando docker ps
muestra únicamente los contenedores que están actualmente en ejecución.
Sintaxis
docker ps [OPTIONS]
Dónde:
-
OPTIONS
: parámetros adicionales para filtrar y formatear la salida.
Ejemplo de uso básico
docker ps
Esta llamada básica al comando docker ps mostrará una lista de todos los contenedores en ejecución. La salida incluirá los siguientes campos:
- CONTAINER ID: identificador único del contenedor.
- IMAGE: la imagen a partir de la cual se creó el contenedor.
- COMMAND: el comando que se está ejecutando en el contenedor.
- CREATED: el tiempo desde que se creó el contenedor.
- STATUS: el estado actual del contenedor (por ejemplo, Up 5 minutes).
- PORTS: los puertos redirigidos.
- NAMES: el nombre del contenedor.
Lista de todos los contenedores
Para ver todos los contenedores, incluidos los detenidos, utiliza la opción -a:
docker ps -a
Este comando mostrará una lista de todos los contenedores que alguna vez se iniciaron, indicando su estado actual (en ejecución, detenido, etc.).
3.2 Filtrado de salida
Docker ofrece la posibilidad de filtrar la salida del comando docker ps
para mostrar solo los contenedores que cumplan con los criterios especificados.
1. Filtrado por estado
Por ejemplo, para mostrar solo los contenedores detenidos:
docker ps -f "status=exited"
2. Filtrado por nombre
Para mostrar los contenedores con un nombre específico o una parte de él:
docker ps -f "name=my_container"
3. Filtrado por imagen
Para mostrar los contenedores creados a partir de una imagen específica:
docker ps -f "ancestor=nginx"
3.3 Formateo de salida
Puedes personalizar la salida del comando docker ps
para que sea más legible o incluir solo los campos que necesitas. Para esto, se utiliza el parámetro --format
.
Ejemplo de formateo
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
Este ejemplo muestra una tabla con el identificador del contenedor, su nombre y su estado.
Columnas disponibles en la tabla
- {{.ID}}: identificador del contenedor.
- {{.Image}}: imagen del contenedor.
- {{.Command}}: comando ejecutado en el contenedor.
- {{.CreatedAt}}: fecha y hora de creación del contenedor.
- {{.RunningFor}}: tiempo que lleva el contenedor ejecutándose.
- {{.Status}}: estado actual del contenedor.
- {{.Ports}}: puertos redirigidos.
- {{.Names}}: nombre del contenedor.
Ejemplos de uso
Ejemplo 1: mostrar solo los identificadores de los contenedores
Este ejemplo mostrará solo los identificadores de los contenedores en ejecución. Útil para usar en scripts.
docker ps -q
Ejemplo 2: mostrar contenedores iniciados en las últimas 24 horas
docker ps --filter "since=24h"
Ejemplo 3: mostrar contenedores con un estado específico y formatear la salida
Este ejemplo mostrará una tabla con los nombres de los contenedores, su estado y los puertos redirigidos para todos los contenedores en ejecución.
docker ps -f "status=running" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
3.4 Escenarios prácticos
1. Monitoreo de contenedores en ejecución
Cuando tienes varios contenedores ejecutándose, el comando docker ps
te permite verificar rápidamente su estado actual y asegurarte de que todo funcione correctamente.
docker ps
2. Encontrar y eliminar contenedores detenidos
Después de que los contenedores completan su trabajo, permanecen en el sistema hasta que los elimines. Puedes usar docker ps -a
para encontrar todos los contenedores detenidos y luego eliminarlos.
docker ps -a -f "status=exited"
docker rm $(docker ps -a -f "status=exited" -q)
3. Automatización de tareas
Usar el comando docker ps
en scripts permite automatizar varias tareas de administración de contenedores. Por ejemplo, puedes generar reportes sobre el estado de los contenedores o reiniciarlos automáticamente si están detenidos.
if [ $(docker ps -q -f "name=my_container") ]; then
echo "El contenedor está en ejecución"
else
docker start my_container
fi
¡Importante! Este “código” está escrito en el terminal de Linux. Tal vez necesites aprender cómo usarlo.
GO TO FULL VERSION