Introducción
Después de entender qué es Docker Hub, el siguiente paso es completar el recorrido: crear una aplicación pequeña, empaquetarla en una imagen y dejarla disponible para descargarla desde otra máquina.
Si algunos conceptos todavía te resultan nuevos, antes escribí sobre
Docker Hub: Repositorios Públicos y Privados (abre en una pestaña nueva)y los comandos básicos de Docker (abre en una pestaña nueva) .
Acá voy a recorrer el proceso completo con una API sencilla en Node.js y TypeScript. La aplicación solo tendrá un endpoint, porque lo importante es ver cómo pasa del código a Docker Hub.
1. Crear una aplicación con Node.js y TypeScript
Antes de subir una imagen a Docker Hub, necesitamos una aplicación que podamos empaquetar en un contenedor.
Crearemos una API básica con Node.js y TypeScript que exponga un endpoint /hello .
1. Inicializá el proyecto
2. Instalá las dependencias
3. Configurá TypeScript
Ejecutá el siguiente comando para generar un archivo tsconfig.json :
Después, dejá el tsconfig.json con esta configuración:
4. Creá la estructura del proyecto
La estructura debería quedar así:
5. Implementá el servidor
Creá un archivo src/server.ts con este contenido:
6. Configurá el script de inicio
En el archivo package.json , agregá estos scripts:
7. Probá el servidor
Ejecutá:
8. Revisá el código completo
Podés encontrar el proyecto completo en GitHub: hello-docker-ts (abre en una pestaña nueva) .
Si todo salió bien, al visitar http://localhost:3000/hello vas a ver algo como esto:
2. Crear una imagen Docker para la aplicación
1. Creá el Dockerfile
En el directorio del proyecto, creá un archivo llamado Dockerfile con este contenido:
2. Construí la imagen
Ejecutá:
3. Probá la imagen localmente
Entrá a http://localhost:3000/hello y comprobá que el contenedor responda.
3. Subir la imagen a Docker Hub
1. Iniciá sesión en Docker Hub
2. Etiquetá la imagen
3. Subí la imagen
4. Verificá la imagen en Docker Hub
Entrá a tu cuenta y comprobá que la etiqueta aparezca en el repositorio.
4. Compartir la imagen
1. Repositorios públicos
Si el repositorio es público, cualquier persona puede descargar la imagen con:
2. Repositorios privados
Si es privado, necesitás conceder acceso desde Docker Hub y la otra persona tendrá que iniciar sesión antes de descargar la imagen.
Conclusión
El ejemplo es pequeño, pero recorre todas las piezas que al principio tenía separadas en mi cabeza: escribir la aplicación, construir una imagen, probar el contenedor, etiquetarlo y subirlo.
Cuando entendés ese recorrido, Docker Hub deja de sentirse como otra herramienta aislada. Es simplemente el lugar desde el que podés distribuir la misma imagen que ya probaste localmente.