Introducción a Docker 🐳

Diego Ponce García
Nowports Tech and Product

--

“En mi computadora sí funciona”
- El desarrollador que hizo el código en cuestión

Construir una aplicación puede ser algo bastante complejo. Ahora imagina construirla junto a decenas de personas, con diferentes configuraciones en su computadora, diferentes sistemas operativos y en diferentes etapas del proyecto. ¿El resultado? CAOS 🤯.

Docker en acción

Docker es una herramienta diseñada para facilitar la creación, lanzamiento y funcionamiento de aplicaciones utilizando contenedores.

¿Qué es un contenedor?

“Un contenedor es una unidad estándar de software que empaqueta el código y todas sus dependencias, para que la aplicación se ejecute de forma rápida y confiable de un entorno de desarrollo a otro.”

docker.com

Contenedor de Docker corriendo múltiples aplicaciones (Imagen de docker.com)

En otras palabras, Docker corre sobre un sistema operativo propio, Linux por ejemplo, y encima de eso corre los procesos o aplicaciones que se le indiquen(React, PostgreSQL, etc.). Es como tener una computadora virtual que se puede compartir entre desarrolladores, ¡adiós confusiones y problemas de versiones!

Lee todo sobre contenedores aquí.

Creando un contenedor de una aplicación en React

Para ejemplificar su uso crearemos un proyecto de React, con el siguiente comando:

npx create-react-app my-app

Si abrimos el proyecto con nuestro editor de código veremos algo así:

En la raíz del proyecto crearemos un documento con el nombre Dockerfile y ahí guardaremos lo siguiente. La imagen explica los comandos que ejecutará el archivo.

Ahora haremos el build de nuestra imagen con el comando:

docker build -t my-app:1.0 .

Para asegurarnos de que se construyó la imagen correctamente, usaremos el siguiente comando, que nos mostrará todas las imágenes creadas en nuestra computadora:

docker images

Por último, ejecutamos este comando para ver nuestra app corriendo en http://localhost:3000/

docker run -p 3000:3000 my-app

¡Listo!

Docker Hub

Como puedes ver, un contenedor se conforma por una o más imágenes. Una imagen es un conjunto de especificaciones para correr un proyecto, por ejemplo, existe la imagen oficial de Node.js, Redis, Nginx, etc.

Docker Hub es el repositorio más grande de imágenes oficiales y publicadas por la comunidad. Incluso tú puedes subir una imagen a la plataforma para poder compartirla con el mundo o mantenerla de forma privada. Como verás, funciona de manera similar a GitHub.

Conclusión

El sitio web oficial de Docker cuenta con un tutorial interactivo para aprender a usar ésta herramienta, es un excelente punto de inicio para seguir aprendiendo.

Te comparto la liga aquí.

Gracias por leer mi publicación, espero que funcione como una breve y directa introducción en el mundo de los contenedores de Docker.

Esta herramienta cuenta con una amplia documentación y una comunidad gigantesca, por lo que no tardarás en encontrar la respuesta a cualquier duda que salga en tu día a día, utilizándola en tus proyectos.

--

--