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.

Inicio de Laboratorio
Objetivo
- Utilizar Registro de imágenes de Contenedores
Inicio de laboratorio
-
Ingresar al servidor qué contiene al ambiente de laboratorio con credenciales proporcionadas.
-
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 -
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 -
Explorar el archivo .docker/config.json
sudo cat /root/.docker/config.json -
Descargar imagen de contenedor desde registry.suse.com
sudo docker pull registry.suse.com/bci/bci-base:15.4 sudo docker images -
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 -
Listar la imágenenes de contenedores almacenadas en el HOST
sudo docker images -
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 -
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
-
Detener todos los contenedores creados en el HOST
sudo docker stop $(docker ps -qa) -
Eliminar todos los contenedores creados en el HOST
sudo docker rm $(docker ps -qa) -
Eliminar todas las imágenes de contenedor existentes en el HOST
sudo docker image prune -a -
Listar las imágenes de contenedor existentes en el HOST
sudo docker images -
Descargar la imagen de contenedor subida anteriormente a Docker Hub
sudo docker pull docker.io/your_user_name/my-bci:version-1.0 -
Listar las imágenes de contenedor existentes en el HOST
sudo docker images -
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 -
Instalación de herramienta SKOPEO para copia de imágenes de contenedores entre Registry
sudo zypper install skopeo -
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 -
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 -
Descargar la imágen subida anteriormente
sudo docker pull your_user_name/my-apache:1.0 -
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 -
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> -
Regresar a la primera terminal y cancelar la ejecución del Contenedor
Ctrl + c