Listar contenedores en ejecución con docker compose ps
En este paso, aprenderás a listar contenedores en ejecución usando docker compose ps. Antes de poder usar docker compose, necesitamos instalarlo.
Primero, instalemos Docker Compose. Descargaremos la última versión estable.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Este comando descarga el binario de Docker Compose para la arquitectura de tu sistema y lo guarda en /usr/local/bin/docker-compose.
A continuación, debemos aplicar permisos de ejecución al binario.
sudo chmod +x /usr/local/bin/docker-compose
Ahora, verifiquemos la instalación comprobando la versión.
docker-compose --version
Deberías ver la versión instalada de Docker Compose en la salida.
Para demostrar docker compose ps, necesitamos un archivo docker-compose.yml y algunos servicios en ejecución. Creemos un archivo docker-compose.yml simple en tu directorio ~/project.
nano ~/project/docker-compose.yml
Añade el siguiente contenido al archivo:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: alpine:latest
command: sleep infinity
Este archivo docker-compose.yml define dos servicios: web usando la imagen nginx y app usando la imagen alpine. El servicio web mapea el puerto 80 del host al puerto 80 del contenedor. El servicio app ejecuta el comando sleep infinity para mantener el contenedor en ejecución.
Guarda el archivo y sal del editor (Ctrl+X, Y, Enter).
Ahora, descarguemos las imágenes necesarias.
docker pull nginx:latest
docker pull alpine:latest
Estos comandos descargan las imágenes nginx:latest y alpine:latest desde Docker Hub.
A continuación, inicia los servicios definidos en el archivo docker-compose.yml. Asegúrate de estar en el directorio ~/project.
cd ~/project
docker-compose up -d
El comando docker-compose up -d construye, crea, inicia y conecta los contenedores para un servicio. La bandera -d ejecuta los contenedores en modo detached, lo que significa que se ejecutan en segundo plano.
Ahora que los contenedores están en ejecución, podemos usar docker compose ps para listarlos.
docker-compose ps
Este comando lista los contenedores en ejecución definidos en tu archivo docker-compose.yml. Deberías ver una salida similar a esta, mostrando los nombres de los contenedores, comandos, estado y puertos.
NAME COMMAND SERVICE STATUS PORTS
project-app-1 "sleep infinity" app running
project-web-1 "/docker-entrypoint.sh nginx -g 'daemon off;'" web running 0.0.0.0:80->80/tcp
La salida muestra que los contenedores project-app-1 y project-web-1 están en ejecución. El NAME típicamente es el nombre del proyecto (el nombre del directorio) seguido del nombre del servicio y un número.