Desplegar un servidor de Imagenes Docker en un Docker Compose: Docker Registry

Tiempo de lectura: 3 minutos

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.

Deja un comentario