Docker for dummies

Amalgama
Amalgama’s Blog
Published in
4 min readSep 24, 2020

--

By: Tomas Agrimbau

Si sos desarrollador de software o trabajás en el rubro seguramente hayas escuchado muchas veces frases como “esto hay que dockerizarlo”, “esta corriendo en docker” o “debe estar en el container de docker”. Esto significa que Docker está acá (por suerte), y vino para quedarse.

Vamos a explicar qué soluciones nos trae Docker y por qué es tan “mágico” para que cada uno decida si vale el esfuerzo aprender a usarlo y en qué casos.

Entonces,

¿Qué es Docker?

Una herramienta de código abierto que nos permite correr programas y desarrollar código dentro de contenedores. Podríamos decir que nos permite crear máquinas virtuales pero de una forma más eficiente.

¿Qué son los contendores?

Son las instancias de una imagen en donde va estar nuestro código corriendo. Se les dice contenedores porque así como los de transporte estos son “espacios” aislados del contexto exterior. Es decir, los contenedores que tengas corriendo son independientes de la computadora o sistema host. Al igual que la instancia de una máquina virtual.

¿Qué son las imágenes?

Podemos decir que las imágenes de Docker van a ser el molde (o clase para los desarrolladores) con el cual vamos a crear los contenedores. Así como uno puede tener una imagen (archivo .iso) de alguna versión de Windows para instalarlo en diferentes PCs, nosotros podemos usar imágenes de docker para crear los containers. Que al momento de ser creados van a ser iguales pero después pueden ser utilizados de forma diferente (al igual que cuando instalamos un SO en una computadora).

Con esto vamos a poder tener una idea de que es Docker, ahora…

¿Cuándo se usa y por qué?

Para explicar esto podríamos volver a mencionar a los contenedores de transporte que notablemente son muy prácticos por su formato y aislamiento con el exterior. Las mercaderías que se transportan no se ven afectadas por el exterior, ya sea que vayan en barco o en avión, en una bodega o al descubierto, su interior no va sufrir alteraciones.

Esto mismo es lo que facilitan los contendores de Docker. Ya sea que queremos trabajar sobre un proyecto de código o simplemente correr un programa, vamos a poder hacerlo sin tener que pensar en dónde lo estamos haciendo.

Más de una vez se habrán encontrado tratando de instalar un programa que no funciona en una máquina y en otra sí porque tienen diferentes sistemas operativos. O peor aún, porque tienen versiones diferentes del mismo sistema operativo.

Varios desarrolladores se van a identificar si mencionamos los problemas de dependencias que surgen cuando queremos hacer el setup de un proyecto legacy en el cual tenemos que trabajar. O mismo un proyecto en el que venimos trabajando en la oficina y queremos seguirlo en nuestras casas. Al igual que nos va facilitar el desarrollo de múltiples proyectos con dependencias similares. Por ejemplo, podríamos correr varios proyectos con diferentes versiones de un mismo lenguaje.

Por otro lado, vamos a encontrar un enorme beneficio a la hora de querer subir nuestro código a otros entornos, por sobre todo producción. Y esto es porque ya no vamos a tener miedo de tener incompatibilidades o problemas de dependencias entre el servidor de desarrollo o staging y el de producción. Este código va correr sobre un contenedor de docker idéntico al de los otros entornos, en donde las versiones de las dependencias, lenguajes e imágenes que utiliza son exactamente las mismas.

Finalmente, ¿Te conviene empezar a usar Docker?

Definitivamente sí. Te va ahorrar mucho tiempo, sobre todo en el equipo de desarrollo.

En este breve artículo no podemos abordar todos los escenarios en los que te puede ayudar, pero teniendo en cuenta que va a evitar los problemas que surgen entre los diferentes entornos vas a ir pudiendo identificar todos los casos en donde sería fundamental.

No es urgente, si usualmente trabajas solo (rara vez pasa) o si recién estás entrando en el mundo del desarrollo podes esperar un poco, pero aun así es sumamente recomendable.

By: Tomas Agrimbau

________________________________________________________________

Ver nuestra última nota → Reuniones 1on1, ¿Sirven?

Si te interesa nuestro contenido, y querés saber más, inscribite a nuestro newsletter haciendo click acá.

--

--

We are a digital consulting firm. We develop digital products that people love to use. Visit us at www.amalgama.co and contact us at hello@amalgama.co