Skip to content

Tema:

Registros en Docker (Docker Image Registry)


Introducción

En el ecosistema de Docker, un registro de Docker es una parte fundamental que facilita el almacenamiento, distribución y acceso a imágenes de contenedores. Las imágenes son esenciales para crear y ejecutar contenedores, ya que contienen todo lo necesario para que una aplicación funcione, desde el sistema operativo base hasta las dependencias y configuraciones específicas.

Docker Hub es el registro público más popular y, de forma predeterminada, Docker busca imágenes en Docker Hub cuando ejecuta comandos como docker pull o docker run. Sin embargo, no es la única opción. Docker permite que los usuarios configuren y utilicen registros privados, ofreciendo mayor control sobre dónde se almacenan las imágenes y cómo se distribuyen. Esto es especialmente relevante para empresas o proyectos que necesitan mayor privacidad, seguridad o personalización en sus flujos de trabajo.

El uso de registros no se limita a almacenar imágenes; también es clave para integrar el ciclo de vida del desarrollo de software, desde el desarrollo y las pruebas hasta la producción. Además, los registros permiten la colaboración eficiente entre equipos, al proporcionar una forma centralizada y segura de acceder a las imágenes.


Objetivo

Objetivo General:

  • El objetivo de este tema es comprender el concepto y la importancia de los registros en Docker, así como aprender a configurar y utilizar registros públicos y privados.

Docker

Inicio de Laboratorio

Objetivo

  • Utilizar Registro de imágenes de Contenedores

Inicio de laboratorio

  1. Ingresar al servidor qué contiene al ambiente de laboratorio con credenciales proporcionadas.

  2. Realizar una prueba de conexión y login a un Image Registry Privado, este paso es unicamente para demostrar la conexión hacia una Private Image registry, no se debe proveer ningun usuario ni contraseña.

    sudo docker login registry.suse.com
    Ctrl + c
    

  3. Realizar una conexión y login a Image Registry de Docker Hub

    sudo docker login
    student@student-0-aio:~> sudo docker login
    Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
    Username: your_user_name
    Password:
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    Login Succeeded
    

  4. Explorar el archivo .docker/config.json

    sudo cat /root/.docker/config.json
    

  5. Descargar imagen de contenedor desde registry.suse.com

    sudo docker pull registry.suse.com/bci/bci-base:15.4
    sudo docker images
    

  6. Creando un nuevo TAG para la imagen descargada anteriormente, con lo cual será posible copiarla a otro Image Registry. Debe reemplazar el valor de "your_user_name"

    sudo docker tag registry.suse.com/bci/bci-base:15.4 docker.io/your_user_name/my-bci:version-1.0
    

  7. Listar la imágenenes de contenedores almacenadas en el HOST

    sudo docker images
    

  8. Cargar la imagen de contenedor hacia el Image Registry Docker Hub. Debe reemplazar el valor de "your_user_name"

    sudo docker push docker.io/your_user_name/my-bci:version-1.0
    

  9. Ingresar desde un navegador web al Image Registry Docker Hub con su cuenta de usuario y verificar la imagen subida. Dar Click en el Link: Repositories

  10. Detener todos los contenedores creados en el HOST

    sudo docker stop $(docker ps -qa)
    

  11. Eliminar todos los contenedores creados en el HOST

    sudo docker rm $(docker ps -qa)
    

  12. Eliminar todas las imágenes de contenedor existentes en el HOST

    sudo docker image prune -a
    

  13. Listar las imágenes de contenedor existentes en el HOST

    sudo docker images
    

  14. Descargar la imagen de contenedor subida anteriormente a Docker Hub

    sudo docker pull docker.io/your_user_name/my-bci:version-1.0
    

  15. Listar las imágenes de contenedor existentes en el HOST

    sudo docker images
    

  16. Ejecutar un nuevo contenedor con la imágen descargada anteriormente

    sudo docker run -it --name my-bci docker.io/your_user_name/my-bci:version-1.0
    exit
    

  17. Instalación de herramienta SKOPEO para copia de imágenes de contenedores entre Registry

    sudo zypper install skopeo
    

  18. Realizar una copia de una imagen de contenedor desde Docker Hub a un Repositorio propio

    sudo skopeo copy docker://docker.io/httpd:latest docker://docker.io/your_user_name/my-apache:1.0 --dest-authfile $HOME/.docker/config.json
    

  19. Ingresar desde un navegador web al Image Registry Docker Hub con su cuenta de usuario y verificar que la imagen este disponible.
    Dar Click en el Link: Repositories Dar Click en: your_user_name/my-apache

  20. Descargar la imágen subida anteriormente

    sudo docker pull your_user_name/my-apache:1.0
    

  21. Iniciar un nuevo contenedor con la imágen subida anteriormente

    sudo docker run --name my-apache -p 8080:80 your_user_name/my-apache:1.0
    

  22. Abrir una segunda terminal SSH y verificar el servicio web en el contenedor creado anteriormente

    curl http://localhost:8080
    <html><body><h1>It works!</h1></body></html>
    

  23. Regresar a la primera terminal y cancelar la ejecución del Contenedor

    Ctrl + c