Cómo subir una imagen de docker a Docker Hub

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:
Docker Desktop o Docker Engine instalado
Necesita una cuenta activa en Docker Hub.
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 etiquetalatest
.
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 elpush
).<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:
Visite Docker Hub: Abra su navegador e ingrese al sitio
https://hub.docker.com/
.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.Verifica las etiquetas: Haga clic en el repositorio para ver las etiquetas disponibles. Debería encontrar la etiqueta
latest
que acaba de subir.
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.