Home / Programacion / ¿Qué es Docker?

¿Qué es Docker?

Cuando desarrollamos software, hay siempre problemas típicos y siempre están en el ámbito de la construcción, de la distribución, o de la ejecución de nuestro código. Docker lo que nos permite es poder resolver todos esos problemas muy simplemente y por eso es muy importante. Pero para entenderlo un poquito más haremos una analogía.

Es un problema que no tiene que ver con software pero tiene que ver con las cosas que pasa en el mundo desde hace tiempo. Tenemos un barco en un muelle en el siglo XIX, del cual se están descargando mercancías y un vagón de un tren esperando a ser cargado. Pero pongámonos un poco en contexto.

Imaginemos que es un barco que viene desde Europa hacia América con partes de un tren, el cual debe ser armado una vez arribe, pero el problema está en que tal vez una herramienta falte o se haya dañado durante el viaje, o las vías del tren de ese país no son compatibles con el tren, he incluso la infraestructura del puerto no permita el desembarque de las piezas.

La solución a este problema se resolvió gracias a los contenedores. Pudiendo enviar cosas con un tamaño, peso y volumen especifico. Creando así un estándar de envíos internacionales.

En el mundo del software la primer solución a este tipo de problemas fueron las máquinas virtuales, pero tiene sus problemas son pesadas, ocupan espacios en el orden de los GB pensando que son S.O completos, además de las dependencias. Son costosas de administrar hay parchearlas, actualizarlas, pagar servicios si los usamos de manera legal y demás son algo lentas, porque tiene que cargar todos los procesos desde la virtualización.

Docker lo que nos proporciona son procesos aislados y no completos como una máquina virtual, por lo que son pequeños en el orden de los MB, tienen todas las dependencias que necesitan para ejecutarse por lo que no es necesario ir a configurar el ordenador destino del software para pruebas, por lo que funciona igual de bien en cualquier momento.

Son muy eficientes ya que comparten dependencias con otros contenedores evitando una sobre carga de procesos y además estos no son modificables entre si y no crean problemas de archivos corruptos, y lo más importante son elementos aislados que no dañan el entorno de ejecución aun este archivo cree un desastre no lo lograra a menos que lo permitamos pero no es nuestro caso.

About gonzalez96

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *