En este tutorial, aprenderás cómo configurar y utilizar un Docker Registry local con Docker Compose. Además, crearemos una imagen personalizada y la almacenaremos.
Paso 1: Instala Docker y Docker Compose
Si aún no tienes Docker y Docker Compose instalados en tu sistema, debes instalarlos. Puedes seguir las instrucciones en el sitio web oficial de Docker:
Paso 2: Crea un directorio para tu proyecto
Crea un directorio en tu sistema para este proyecto. Puedes nombrar el directorio como desees.
mkdir mi-docker-registry cd mi-docker-registry
Paso 3: Crea el archivo docker-compose.yml
Crea un archivo llamado docker-compose.yml
dentro del directorio que acabas de crear. Con este contenido:
version: '3.3' services: docker-registry: ports: - '5000:5000' container_name: docker-registry image: 'registry:2' restart: always volumes: - './registry:/var/lib/registry'
Paso 4: Inicia el Docker Registry
Ejecuta el siguiente comando para iniciar el Docker Registry local utilizando Docker Compose:
docker-compose up -d
Esto iniciará el servicio del registro en segundo plano.
Paso 5: Etiqueta y sube una imagen al registro
Vamos a crear una imagen de prueba para almacenarlo en Docker Registry.
Primero creamos una imagen Docker que simplemente contendrá un Hello World.
Para ello creamos un archivo llamado Docker File con este contenido:
# Use una imagen base ligera de Linux FROM alpine:latest # Etiqueta de mantenimiento LABEL maintainer="tunombre@example.com" # Agregar un comando de impresión simple CMD ["echo", "¡Hola, Mundo!"]
Ahora construimos la imagen, en el directorio de nuestro Dockerfile ejecutamos lo siguiente:
docker build -t localhost:5000/mi-imagen-personalizada:1.0 .
Y esperamos a que termine:
Antes de subir la imagen al registro local, debes etiquetarla con la dirección del registro local. Ejecuta el siguiente comando:
docker push localhost:5000/mi-imagen-personalizada:1.0
Si queremos que la imagen sea la última versión (catalogada como latest) ponemos lo siguiente:
docker tag localhost:5000/mi-imagen-personalizada:1.0 localhost:5000/mi-imagen-personalizada:latest
Ahora, subimos esta imagen personalizada a Docker Registry:
docker push localhost:5000/mi-imagen-personalizada:latest
Para verificar el catálogo de imágenes que tienes disponibles podrás usar el siguiente comando:
curl -X GET http://localhost:5000/v2/_catalog
Paso 6: Descarga una imagen desde el registro
Puedes descargar la imagen desde el registro local en otro sistema o contenedor utilizando docker pull
. Asegúrate de que Docker esté instalado en ese sistema y que puedas acceder al registro local por su dirección IP o nombre de host:
# Descarga la imagen desde el registro local en otro sistema docker pull localhost:5000/mi-imagen-personalizada:latest
Para descargarla usando Docker Compose podemos usar lo siguiente:
version: '3.3' services: hello-world: container_name: hello-world image: 'localhost:5000/hello-world:latest' restart: always
Paso 7: Limpia y detiene el Docker Registry
Si ya no necesitas el registro o deseas detenerlo, puedes utilizar el siguiente comando:
docker-compose down
Esto detendrá y eliminará el servicio del registro y sus contenedores asociados. Los datos del registro se guardarán en el volumen especificado en docker-compose.yml
, por lo que no se perderán.
¡Eso es todo! Ahora sabes cómo configurar y utilizar un Docker Registry local con Docker Compose. Puedes usarlo para almacenar y distribuir imágenes Docker dentro de tu entorno local.
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.