Mostrando las entradas con la etiqueta artículo. Mostrar todas las entradas
Mostrando las entradas con la etiqueta artículo. Mostrar todas las entradas

martes, 12 de agosto de 2014

¿En que se diferencia Docker de la virtualización tradicional?

Docker, y las tecnologías de contenedores en general(LXC, chroot, zones, etc) pueden parecer idénticas a las maquinas virtuales, para entender en que se diferencian, partamos del siguiente gráfico:


En el grafico, resaltados en color naranja, se listan los componentes que se usan para ejecutar una aplicación tanto en maquina virtual como en Docker, cuando se utilizan maquinas virtuales, es necesario virtualizar todo el sistema operativo,  con el gasto de recursos que eso implica, minimizando la ram, disco y procesador que podrá usar la aplicación en si, en cambio, utilizando Docker, la cantidad de recursos para cada aplicación es mayor al usar directamente los binarios y librerías para ejecutar la aplicación dentro de una imagen.

En ambos casos, las aplicaciones que se ejecuten dentro de la maquina virtual o de la instancia de Docker, estan aisladas del sistema operativo anfitrión,  pudiendo ejecutarse tantas maquinas virtuales/instancias de contenedores como nos permita nuestro hardware, en el caso de Docker, al usarse menos recursos, es posible tener un mejor rendimiento de aplicaciones por servidor que las maquinas virtuales, la principal desventaja de Docker es que solo se pueden tener instancias de distribuciones Linux, siendo imposible ejecutar instancias de Windows u otros, para ese tipo de ambientes, estaremos forzados a usar virtualizacion

Cabe señalar que Docker utiliza características del Kernel de linux implementadas en la version 3.8, por lo que deberemos usar dicha version o una superior para tener Docker funcionando; cualquier distribucion moderna incluye kernel 3.8 o superior. 

miércoles, 30 de julio de 2014

¿Que es Docker?

Docker es una plataforma abierta para empaquetar y distribuir aplicaciones dentro de contenedores, actualmente consta de dos partes:

  1. Motor (Docker Engine) permite crear y empaquetar aplicaciones incluyendo todas las dependencias necesarias para su ejecución en imágenes livianas y portables.
  2. Registro (Docker Hub) Servicio en la nube que permite compartir las imágenes y automatizar flujos.
Docker permite ensamblar de manera aislada y rápida una aplicación con sus requisitos y el entorno de ejecución necesario para su correcto funcionamiento dentro de un contenedor de fácil redistribución, eliminando las diferencias entre los entornos de desarrollo, pruebas y producción.

El contenedor docker puede incluir una distribución de linux distinta de la que se usa en el servidor donde se ejecuta en caso de ser requerido, al ser una tecnología que depende de versiones modernas del Kernel de Linux(3.8 o superior), no es posible usar Docker nativamente en otros sistemas operativos como Windows u OSX.