Cómo usar el comando docker compose images para listar imágenes

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 el comando docker compose images para listar las imágenes de Docker utilizadas por los servicios definidos en un archivo docker-compose.yml. Comenzaremos preparando un archivo docker-compose.yml simple y luego usaremos el comando docker compose up para iniciar los servicios.

Posteriormente, exploraremos diferentes formas de listar las imágenes. Aprenderás cómo listar todas las imágenes utilizadas por los contenedores creados, cómo listar solo los IDs de las imágenes usando la opción silenciosa (quiet), y cómo listar las imágenes en formato JSON para facilitar su análisis. Esta experiencia práctica te proporcionará habilidades útiles para gestionar imágenes en tus proyectos de Docker Compose.


Skills Graph

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

Preparar un archivo docker-compose.yml simple

En este paso, prepararemos un archivo docker-compose.yml simple. Antes de comenzar, necesitamos instalar Docker Compose. Docker Compose es una herramienta para definir y ejecutar aplicaciones multi-contenedor de Docker. Con Compose, usas un archivo YAML para configurar los servicios de tu aplicación. Luego, con un solo comando, creas e inicias todos los servicios desde tu configuración.

Primero, instalemos Docker Compose. 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

Ahora, verifiquemos la instalación comprobando la versión de Docker Compose.

docker-compose --version

Deberías ver una salida similar a Docker Compose version v2.20.2.

A continuación, crearemos un directorio para nuestro proyecto y navegaremos hasta él.

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

Ahora, crearemos un archivo docker-compose.yml usando el editor nano. Este archivo definirá un servicio web simple usando la imagen nginx.

nano docker-compose.yml

En el editor nano, pega el siguiente contenido:

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

Analicemos este archivo docker-compose.yml:

  • version: '3.8' especifica la versión del formato del archivo Compose.
  • services: define los servicios para nuestra aplicación.
  • web: es el nombre de nuestro servicio.
  • image: nginx:latest especifica la imagen de Docker a usar para este servicio. En este caso, estamos usando la última versión de la imagen nginx.
  • ports: mapea puertos entre el host y el contenedor. "80:80" mapea el puerto 80 del host al puerto 80 del contenedor.

Guarda el archivo presionando Ctrl + X, luego Y, y luego Enter.

Antes de iniciar el servicio, necesitamos descargar la imagen nginx:latest.

docker pull nginx:latest

Este comando descarga la imagen nginx:latest desde Docker Hub.

Iniciar servicios definidos en el archivo docker-compose.yml

En este paso, iniciaremos los servicios definidos en nuestro archivo docker-compose.yml. Utilizaremos el comando docker-compose up para construir, crear e iniciar los servicios.

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

cd ~/project/my-docker-app

Ahora, ejecuta el siguiente comando para iniciar los servicios en modo desatendido (en segundo plano).

docker-compose up -d

El flag -d ejecuta los contenedores en modo desatendido, lo que significa que se ejecutarán en segundo plano sin ocupar tu terminal.

Deberías ver una salida que indica que el servicio web está siendo creado e iniciado.

Para verificar que el contenedor está en ejecución, puedes usar el comando docker ps.

docker ps

Deberías ver un contenedor llamado my-docker-app-web-1 (o similar, dependiendo del nombre del directorio del proyecto) con la imagen nginx, y el estado debería ser Up.

También podemos comprobar si el servidor web es accesible usando curl para acceder a localhost en el puerto 80.

curl http://localhost:80

Deberías ver el HTML de la página de bienvenida predeterminada de Nginx en tu terminal, lo que confirma que el servidor web está en ejecución y accesible.

Listar imágenes utilizadas por los contenedores creados

En este paso, listaremos las imágenes de Docker que se encuentran actualmente en nuestro sistema, enfocándonos específicamente en la imagen utilizada por el contenedor que acabamos de crear. El comando docker images se utiliza para listar imágenes.

Ejecuta el siguiente comando para listar todas las imágenes:

docker images

Deberías ver una tabla con información sobre las imágenes, incluyendo REPOSITORY, TAG, IMAGE ID, CREATED y SIZE. La imagen nginx debería aparecer en esta lista.

La salida muestra las imágenes que han sido descargadas o construidas en tu sistema. La imagen nginx fue descargada en el paso anterior y ahora está siendo utilizada por el contenedor en ejecución.

Listar solo IDs de imágenes usando la opción quiet (silenciosa)

En este paso, aprenderemos cómo listar solo los IDs de imágenes usando el comando docker images con la opción quiet. Esto es útil cuando necesitas obtener una lista de IDs de imágenes para scripting u otros propósitos.

La opción quiet se especifica con el flag -q.

Ejecuta el siguiente comando para listar solo los IDs de imágenes:

docker images -q

Deberías ver una lista de IDs de imágenes, uno por línea. Esta salida es mucho más concisa que la salida completa de docker images.

Esta opción es particularmente útil cuando deseas procesar la lista de imágenes programáticamente, por ejemplo, para eliminar imágenes antiguas.

Listar imágenes en formato JSON

En este paso, aprenderemos cómo listar imágenes de Docker en formato JSON. Esto es útil cuando deseas analizar la salida programáticamente usando herramientas como jq.

Podemos usar la opción --format con el comando docker images para especificar el formato de salida. Para obtener la salida en formato JSON, usamos la palabra clave json.

Ejecuta el siguiente comando para listar imágenes en formato JSON:

docker images --format json

Deberías ver la salida en formato JSON, que es una forma estructurada de representar la información de las imágenes. Cada imagen se mostrará como un objeto JSON dentro de un arreglo JSON.

Este formato es ideal para integrar información de imágenes Docker en scripts u otras aplicaciones que puedan procesar datos JSON.

Al completar este paso, puedes detener el contenedor en ejecución y eliminar el directorio del proyecto si lo deseas.

Para detener el contenedor, regresa al directorio ~/project/my-docker-app y ejecuta:

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

Este comando detiene y elimina los contenedores, redes y volúmenes creados por docker-compose up.

Para eliminar el directorio del proyecto, puedes usar el comando rm:

cd ~/project
rm -rf my-docker-app

Resumen

En este laboratorio, aprendimos a usar el comando docker compose images para listar las imágenes utilizadas por los servicios definidos en un archivo docker-compose.yml. Comenzamos preparando un archivo docker-compose.yml simple que define un servicio web usando la imagen nginx, incluyendo la instalación de Docker Compose y la creación de la estructura de archivos necesaria.

Luego iniciamos los servicios definidos en el archivo docker-compose.yml. Finalmente, exploramos diferentes formas de listar las imágenes utilizadas por los contenedores creados, incluyendo:

  • Listar todos los detalles de las imágenes
  • Listar solo los IDs de imágenes usando la opción quiet (silenciosa)
  • Listar imágenes en formato JSON