Cómo usar el comando docker compose ls para listar proyectos Compose

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 compose ls para listar y gestionar tus proyectos de Docker Compose. Comenzaremos configurando un proyecto de Compose de ejemplo, incluyendo la instalación de Docker Compose si es necesario, la creación de un archivo docker-compose.yml y el inicio del proyecto.

Después de la configuración del proyecto, explorarás diversas formas de listar tus proyectos de Compose utilizando docker compose ls. Esto incluye listar solo proyectos en ejecución, listar todos los proyectos (incluyendo los detenidos), mostrar solo los nombres de los proyectos y filtrar proyectos según criterios específicos. Al finalizar este laboratorio, serás competente en el uso de docker compose ls para obtener visibilidad de tus entornos Compose.


Skills Graph

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

Iniciar un proyecto de Compose de ejemplo

En este paso, aprenderemos cómo iniciar un proyecto de Compose de ejemplo. Antes de poder usar Docker Compose, necesitamos instalarlo. Dado que el entorno de LabEx VM no tiene Docker Compose preinstalado, lo instalaremos primero.

Descargaremos el binario de Docker Compose y lo haremos ejecutable.

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
sudo chmod +x /usr/local/bin/docker-compose

Después de la instalación, podemos verificar la instalación comprobando la versión de Docker Compose.

docker-compose --version

Deberías ver la información de la versión impresa en la consola, lo que confirma que Docker Compose está instalado correctamente.

Ahora, creemos un proyecto simple de Compose. Crearemos un directorio para nuestro proyecto y luego crearemos un archivo docker-compose.yml dentro de él. Este archivo definirá los servicios para nuestra aplicación.

Primero, crea un directorio llamado my-compose-app.

mkdir ~/project/my-compose-app
cd ~/project/my-compose-app

A continuación, crea un archivo llamado docker-compose.yml en el directorio ~/project/my-compose-app usando el editor nano.

nano docker-compose.yml

Agrega el siguiente contenido al archivo docker-compose.yml. Este archivo define un único servicio llamado web que utiliza la imagen nginx.

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Guarda el archivo y sal del editor nano (Presiona Ctrl + X, luego Y, luego Enter).

Antes de iniciar el servicio, debemos asegurarnos de que la imagen nginx:latest esté disponible localmente. Podemos descargar la imagen usando el comando docker pull.

docker pull nginx:latest

Ahora que tenemos el archivo docker-compose.yml y la imagen necesaria, podemos iniciar el proyecto de Compose usando el comando docker-compose up. La bandera -d ejecuta los servicios en modo desacoplado, lo que significa que se ejecutarán en segundo plano.

docker-compose up -d

Este comando creará e iniciará el servicio web como se define en el archivo docker-compose.yml. Deberías ver una salida que indica que el servicio se está creando e iniciando.

Para verificar que el servicio se está ejecutando, puedes usar el comando docker ps para listar los contenedores en ejecución. Deberías ver un contenedor para el servicio web.

docker ps

También puedes acceder al servidor web Nginx abriendo un navegador web y navegando a la dirección IP de tu LabEx VM. Como mapeamos el puerto 80 del contenedor al puerto 80 del host, deberías ver la página de bienvenida predeterminada de Nginx.

Listar proyectos Compose en ejecución usando docker compose ls

En el paso anterior, iniciamos un proyecto Compose de ejemplo llamado my-compose-app. Ahora, aprenderemos cómo listar proyectos Compose en ejecución usando el comando docker compose ls.

El comando docker compose ls se utiliza para listar todos los proyectos Compose. Por defecto, solo muestra los proyectos en ejecución.

Asegúrate de estar en el directorio ~/project/my-compose-app donde se encuentra tu archivo docker-compose.yml.

cd ~/project/my-compose-app

Ahora, ejecuta el comando docker compose ls.

docker compose ls

Deberías ver una salida similar a esta:

NAME              STATUS    CONFIG FILES
my-compose-app    running   docker-compose.yml

Esta salida muestra que hay un proyecto Compose en ejecución llamado my-compose-app, y está utilizando el archivo de configuración docker-compose.yml.

El comando docker compose ls es una forma rápida de ver cuáles de tus proyectos Compose están actualmente activos y ejecutando contenedores.

Listar todos los proyectos Compose incluyendo los detenidos usando docker compose ls -a

En el paso anterior, listamos los proyectos Compose en ejecución. Por defecto, docker compose ls solo muestra proyectos que tienen al menos un contenedor activo. Para ver todos los proyectos Compose, incluyendo aquellos que están detenidos, necesitamos usar el flag -a.

Primero, detengamos el proyecto my-compose-app que iniciamos en el primer paso. Asegúrate de estar en el directorio ~/project/my-compose-app.

cd ~/project/my-compose-app

Ahora, detén el proyecto usando el comando docker-compose down. Este comando detiene y elimina los contenedores, redes y volúmenes creados por docker-compose up.

docker-compose down

Deberías ver una salida indicando que los servicios y recursos están siendo detenidos y eliminados.

Ahora que el proyecto está detenido, intentemos listar los proyectos Compose nuevamente usando el comando por defecto docker compose ls.

docker compose ls

Esta vez, no deberías ver el proyecto my-compose-app listado porque está detenido.

Ahora, usemos el comando docker compose ls -a para listar todos los proyectos Compose, incluyendo los detenidos.

docker compose ls -a

Ahora deberías ver una salida similar a esta:

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

Esta salida muestra que el proyecto my-compose-app existe, aunque su estado sea exited (detenido). El flag -a es útil para ver todos los proyectos Compose que has definido en tu sistema, independientemente de su estado actual.

Listar solo nombres de proyectos usando docker compose ls -q

En los pasos anteriores, listamos proyectos Compose con su estado y archivos de configuración. A veces, solo necesitas una lista de los nombres de los proyectos, por ejemplo, para usar en un script. El comando docker compose ls -q te permite hacer esto.

El flag -q significa "quiet" (silencioso) y suprime toda la salida excepto los nombres de los proyectos.

Asegúrate de estar en el directorio ~/project/my-compose-app.

cd ~/project/my-compose-app

Ahora, ejecuta el comando docker compose ls -q.

docker compose ls -q

Deberías ver solo el nombre del proyecto Compose impreso en la consola:

my-compose-app

Esto es útil cuando deseas obtener una lista limpia de nombres de proyectos sin información adicional. Puedes combinar el flag -q con el flag -a para listar los nombres de todos los proyectos Compose, incluyendo los detenidos.

Probemos esto:

docker compose ls -a -q

Deberías seguir viendo:

my-compose-app

Esto confirma que el flag -q solo muestra los nombres de los proyectos, independientemente de si el proyecto está en ejecución o detenido cuando se combina con -a.

Filtrar proyectos Compose usando docker compose ls --filter

En este paso final, exploraremos cómo filtrar la salida de docker compose ls usando el flag --filter. Esto es útil cuando tienes muchos proyectos Compose y deseas encontrar específicos basados en ciertos criterios.

El flag --filter te permite especificar pares clave-valor para filtrar los resultados. Un filtro común es por status.

Primero, asegurémonos que nuestro proyecto my-compose-app esté detenido. Lo detuvimos en el paso anterior, pero es buena práctica confirmarlo.

cd ~/project/my-compose-app
docker-compose down

Ahora, usemos el flag --filter para listar solo proyectos Compose en ejecución. Como nuestro proyecto está detenido, este comando no debería mostrar resultados.

docker compose ls --filter status=running

No deberías ver ninguna salida, ya que no hay proyectos Compose en ejecución.

Ahora, usemos el flag --filter para listar solo proyectos Compose detenidos.

docker compose ls --filter status=exited

Deberías ver una salida similar a esta:

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

Esto muestra que el proyecto my-compose-app aparece listado porque su estado es exited.

También puedes filtrar por otros criterios, como el name del proyecto. Filtremos por el proyecto llamado my-compose-app.

docker compose ls --filter name=my-compose-app

Esto también debería mostrar el proyecto my-compose-app:

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

El flag --filter proporciona una forma poderosa de gestionar y visualizar tus proyectos Compose, especialmente en entornos con muchas aplicaciones diferentes definidas por archivos Compose.

Resumen

En este laboratorio, aprendimos a usar el comando docker compose ls para listar proyectos de Docker Compose. Comenzamos instalando Docker Compose y luego creamos e iniciamos un proyecto de ejemplo usando un archivo docker-compose.yml y el comando docker-compose up -d.

Posteriormente, exploramos las diferentes opciones del comando docker compose ls. Utilizamos docker compose ls para listar proyectos en ejecución, docker compose ls -a para listar todos los proyectos incluyendo los detenidos, docker compose ls -q para mostrar solo los nombres de los proyectos, y docker compose ls --filter para filtrar proyectos según criterios específicos. Estos pasos demostraron la versatilidad del comando docker compose ls para gestionar e inspeccionar proyectos Compose.