Ejecutar una aplicación dentro de un contenedor es de mayor utilidad si otras personas pueden utilizarla. La creación de un Dockerfile es un paso importante en ese proceso, junto con ponerlo a disposición de forma pública. Sin embargo, un camino más directo para lograr este objetivo consiste en subir nuestro trabajo a un registro global. Con eso en mente, esta guía te enseñará cómo subir imágenes propias al Docker Hub para beneficio de la comunidad. Este abordaje facilita la mejora permanente y refina el esfuerzo de todos.
Requisitos previos
- Completar la creación de una imagen como explicamos en Cómo crear imágenes propias usando un Dockerfile en Ubuntu 20.04. Considera hacer un fork del repositorio original para lograr un resultado que incluya tus toques personales.
Paso 0: Crea una cuenta en Docker Hub
Si todavía no dispones de una cuenta en Docker Hub, este es el momento de crearla. Caso contrario, puedes omitir este paso y continuar con el siguiente.
Para comenzar, haz clic en Sign Up para elegir un Docker ID (nombre de la cuenta) e ingresar tu correo electrónico junto con una contraseña segura. Para verificar que no eres un robot, se te pedirá que completes un desafío captcha:
A continuación, deberás elegir un plan que se adapte a tus necesidades y las de tu equipo. Para los propósitos de esta guía, elige el plan Personal. De todas maneras, es buena idea leer las características de cada uno para saber cuál es más conveniente si encuentras limitaciones en la opción gratuita. Finalmente, tendrás que confirmar tu correo electrónico antes de poder crear un repositorio personal.
Al hacer clic en el link que recibiste dentro del mensaje, llegarás a la pantalla de bienvenida. Recuerda que puedes descargar Docker Desktop si lo deseas, aunque en esta oportunidad continuaremos trabajando desde la terminal de Linux.
Paso 1: Creación de un repositorio
En la misma pantalla inicial verás los siguientes botones de acción:
Si bien este artículo está dedicado a la creación de un repositorio para alojar imágenes Docker propias, te sugerimos aprovechar de forma paralela los otros dos recursos. Familiarizarte con el funcionamiento del Docker Hub y leer la documentación para correr aplicaciones en contenedores son dos fuentes invaluables de información.
En este caso, haz clic en Create a Repository, elige un nombre junto con una descripción y finaliza presionando el botón que indica la imagen:
Como resultado, verás tu primer repositorio y podrás hacer el push de tu imagen a continuación.
Paso 2: Subir la imagen
Al final del post anterior ilustramos el build de una imagen que llamamos gacanepa/cursodonweb y a la que asignamos la etiqueta 1.0. Como puedes ver ahora, este nombre no es arbitrario, sino que está compuesto por un Docker ID seguido del repositorio destino. Con respecto a la elección de la etiqueta 1.0, corresponde a que consideramos a la imagen la primera versión estable de nuestro trabajo.
Desde la terminal, ejecuta el comando siguiente luego de reemplazar gacanepa por tu propio Docker ID:
sudo docker login --username gacanepa
Luego de ingresar la contraseña verás la advertencia que se observa debajo. Por el momento tu cuenta y contraseña se guardaron sin cifrar en el archivo /root/.docker/config.json. Por esa razón, te aconsejamos consultar la documentación para poner en funcionamiento un gestor de credenciales cuanto antes.
Además de ese mensaje, abajo también verás el comando para hacer el push de la imagen. Antes de presionar Enter, asegúrate de reemplazar gacanepa/cursodonweb:1.0 con el nombre y etiqueta correspondientes a tu imagen. La respuesta del comando incluirá el repositorio de destino.
sudo docker image push gacanepa/cursodonweb:1.0
Al finalizar, vuelve al repositorio desde tu navegador para verificar el estado de la imagen:
A partir de este momento, otras personas pueden descargar la imagen (a través de sudo docker image pull gacanepa/cursodonweb:1.0
) o crear un contenedor en base a la misma:
sudo docker container run --name=pruebadonweb --publish 8080:80 --detach gacanepa/cursodonweb:1.0
¡Felicitaciones! Has subido tu primera imagen a un registro público y comprobado que puede usarse para generar un contenedor que la utilice.
Conclusión
En esta guía aprendiste cómo subir imágenes propias al Docker Hub. Gracias a eso, cualquier persona podrá utilizarlas para levantar un contenedor o emplearlas como base en otras. Esto es lo que significa contenerizar una aplicación y constituye la primera maravilla práctica de Docker.