Cómo subir una imagen de docker a Docker Hub

Jesse PadillaJesse Padilla
4 min read

Introducción

Este tutorial proporciona el proceso paso a paso para publicar una imagen de docker desde el entorno local a un repositorio en Docker Hub utilizando la Interfaz de Línea de Comandos (CLI).

Un registro es un sistema de almacenamiento y distribución para imágenes de docker. Funciona como un repositorio centralizado (una especie de biblioteca o almacén) donde puede:

  • Subir (push): Guardar tus propias imágenes de contenedores para que estén seguras y accesibles.

  • Descargar (pull): Obtener imágenes que tú u otros han creado para usarlas en cualquier máquina con docker.

Docker Hub es un servicio de registro en la nube proporcionado por docker que te permite almacenar, compartir y gestionar sus imágenes de contenedores. Es el repositorio de imágenes de contenedores más grande del mundo, donde puede encontrar imágenes oficiales de software (como Ubuntu, Python, Node.js) y también subir sus propias imágenes para uso público o privado.

Existen diversas alternativas a Docker Hub, cada una con sus propias ventajas. Se suelen agrupar en las siguientes categorías:

1. Registros de proveedores de nube

Son ideales si trabaja dentro de un ecosistema de nube específico, ya que se integran perfectamente con otros servicios.

  • Google Artifact Registry: Es la solución de Google Cloud (GCP).

  • Amazon Elastic Container Registry: El registro de contenedores de AWS.

  • Azure Container Registry: La oferta de Microsoft para su nube, Azure.

2. Registros Self-Hosted

Soluciones opensource para entornos on-prem.

  • Harbor: Un proyecto de código abierto muy popular que incluye características avanzadas como escaneo de vulnerabilidades y replicación de imágenes.

  • GitLab Container Registry: conveniente si se utiliza GitLab para sus repositorios de código y pipelines de CI/CD.

Prerrequisitos

Antes de comenzar, debe de cumplir con los siguientes requisitos:

  1. Docker Desktop o Docker Engine instalado

  2. Necesita una cuenta activa en Docker Hub.

  3. Debe tener una imagen de Docker creada localmente que desee subir. Para este ejemplo, asumiremos que cuenta con una imagen llamada mi-app con la etiqueta latest.

Paso 1: Iniciar sesión en Docker Hub

El primer paso es autenticarte en su cuenta de Docker Hub desde la CLI. Esto se logra con el comando docker login.

$ docker login

Al ejecutar este comando, se te solicitará su nombre de usuario y contraseña de Docker Hub.

Paso 2: Etiquetar la imagen local

Docker Hub requiere que las imágenes estén etiquetadas con un formato específico para asociarlas con su cuenta y un repositorio. El formato es:

<su-usuario-dockerhub>/<nombre-repositorio>:<etiqueta>

  • <su-usuario-dockerhub>: Su nombre de usuario de Docker Hub.

  • <nombre-repositorio>: El nombre que desea asignarle al repositorio en Docker Hub (si no existe, se creará automáticamente durante el push).

  • <etiqueta>: La versión de la imagen (por ejemplo, latest, 1.0, v2.3.1).

Use el comando docker tag para aplicar este nuevo nombre a tu imagen local. Partiendo de la imagen mi-app:latest, el comando se vería así (reemplace <su-usuario-dockerhub> con su usuario real):

$ docker tag mi-app:latest <su-usuario-dockerhub>/mi-app:latest

Ahora, si ejecuta docker images, verá dos imágenes con el mismo ID, la original (mi-app:latest) y la recién etiquetada, lista para ser subida.

Paso 3: Subir la imagen a Docker Hub

Una vez que la imagen está correctamente etiquetada, puede subirla a Docker Hub con el comando docker push. Debe usar el nombre completo de la imagen que creo en el paso anterior.

$ docker push <su-usuario-dockerhub>/mi-app:latest

La terminal mostrará el progreso de la subida, capa por capa. Una salida exitosa se verá similar a esto, indicando que cada capa de la imagen ha sido subida:

The push refers to repository [docker.io/<tu-usuario-dockerhub>/mi-app]
e1a2b3c4d5e6: Pushed
f7g8h9i0j1k2: Pushed
l3m4n5o6p7q8: Mounted from library/node
latest: digest: sha256:abc123def456... size: 1234

Paso 4: Verificación (Opcional)

Para confirmar que su imagen se ha subido correctamente, puede realizar una verificación final:

  1. Visite Docker Hub: Abra su navegador e ingrese al sitio https://hub.docker.com/.

  2. En sus repositorios: Inicie sesión si es necesario y navega en su perfil. Debería ver el nuevo repositorio (mi-app en nuestro ejemplo) listado.

  3. Verifica las etiquetas: Haga clic en el repositorio para ver las etiquetas disponibles. Debería encontrar la etiqueta latest que acaba de subir.

0
Subscribe to my newsletter

Read articles from Jesse Padilla directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Jesse Padilla
Jesse Padilla

¡El café, la fotografía, el manga, los cómics y la tecnología son mis grandes pasiones! Perfil de Instagram Magíster en Ingeniería de Sistemas y Computación. Actualmente, instructor de la Facultad de Ingeniería de la Universidad de los Andes.