Docker y las mquinas virtuales (virtual machines, VM) son dos tecnologas que se utilizan en la implementacin de aplicaciones. En el ciclo de vida del desarrollo de software, la implementacin prepara el cdigo de la aplicacin para que se ejecute para los usuarios finales. Docker es una plataforma de cdigo abierto que los desarrolladores utilizan para empaquetar el software en unidades estandarizadas denominadas contenedores. El contenedor tiene tanto el cdigo de la aplicacin como su entorno, incluidas las bibliotecas, las herramientas del sistema y el tiempo de ejecucin. Con Docker, puede implementar y escalar aplicaciones en cualquier mquina y garantizar que su cdigo se ejecute de manera uniforme. Por el contrario, una mquina virtual es una copia digital de una mquina fsica. Es posible tener varias mquinas virtuales que tengan sistemas operativos propios e individuales que se ejecuten en el mismo sistema operativo host. Los desarrolladores configuran la mquina virtual para crear el entorno de la aplicacin. Tambin es posible ejecutar contenedores de Docker en mquinas virtuales.
La virtualizacin permite la creacin de una instancia virtual de recursos reales, como servidores y redes. En informtica, la virtualizacin permite que varias instancias aisladas de un componente virtualizado funcionen en el componente real.
Por ejemplo, varios servidores virtuales podran ejecutarse en un servidor fsico. Al compartir recursos reales entre varias instancias virtuales, se utilizan mejor y su ejecucin es ms rentable. La virtualizacin es la base de una cantidad significativa de desarrollo e implementacin de aplicaciones.
Como su nombre indica, las mquinas virtuales (virtual machines, VM) proporcionan la virtualizacin de una mquina completa (servidor). Una mquina virtual emula los componentes de hardware de una mquina fsica, como la CPU, la memoria, la tarjeta de interfaz de red, los controladores USB y las tarjetas de sonido. Puede ejecutar un sistema operativo invitado y varias aplicaciones en el entorno virtual.
Las mquinas virtuales han hecho posibles las tecnologas de nube y, en Amazon Web Services (AWS), una mquina virtual se denomina instancia. Estas instancias en la nube pertenecen a AWS, quien las mantiene, y se pueden utilizar a travs de las API.
Una VM le permite ejecutar una mquina virtual en cualquier hardware. Docker le permite ejecutar una aplicacin en cualquier sistema operativo. Utiliza instancias de espacio de usuario aisladas conocidas como contenedores.
Los contenedores de Docker tienen su propio sistema de archivos, estructura de dependencias, procesos y capacidades de red. La aplicacin tiene todo lo que necesita dentro del contenedor y puede ejecutarse en cualquier lugar. La tecnologa de contenedores de Docker utiliza directamente los recursos del ncleo del sistema operativo host subyacente.
Tanto los contenedores de Docker como las mquinas virtuales se crean a partir de imgenes. Cada imagen sirve como esquema del entorno virtualizado. Las imgenes permiten a los usuarios crear y compartir entornos uniformes sin tener que configurarlos cada vez.
Una imagen especifica todos los recursos del sistema necesarios para ejecutar aplicaciones. Por ejemplo, una imagen de VM crea copias de seguridad del sistema operativo, mientras que la imagen del contenedor de Docker crea una copia de seguridad del entorno de aplicaciones.
El control de versiones en Docker se refiere a la capacidad de rastrear y administrar los cambios en las imgenes de Docker a lo largo del tiempo. Permite a los desarrolladores realizar un seguimiento de las diferentes versiones de sus aplicaciones, volver a las versiones anteriores si es necesario e implementar diferentes versiones de una aplicacin simultneamente.
Del mismo modo, el control de versiones en mquinas virtuales se refiere al proceso de seguimiento y gestin de los cambios en la imagen de la mquina virtual a lo largo del tiempo. El control de versiones de mquinas virtuales realiza un seguimiento de los cambios (como actualizaciones y parches) en la configuracin del hardware virtual o del sistema operativo.
Tanto las mquinas virtuales como Docker se disearon para abordar las dificultades de tener que desarrollar diferentes configuraciones de aplicaciones para diferentes tipos de arquitecturas subyacentes. Aunque adoptan diferentes enfoques para afrontar los desafos, tanto las imgenes de Docker como las de VM son porttiles en todas las arquitecturas, ya sea en las instalaciones o en la nube.
Tanto las mquinas virtuales (virtual machines, VM) como Docker abordan el desafo de ejecutar aplicaciones en diferentes entornos. Pero lo hacen por motivos ligeramente diferentes y con enfoques distintos.
Las mquinas virtuales se disearon originalmente para permitir que varios sistemas operativos se ejecutaran en una sola mquina fsica. El objetivo es permitir a los usuarios crear un entorno virtual que est aislado del hardware subyacente. Las mquinas virtuales extraen los detalles del hardware para facilitar la ejecucin de aplicaciones en diferentes arquitecturas de hardware y utilizar los recursos de hardware de manera ms eficiente.
Docker, por otro lado, se dise para proporcionar una forma ligera y porttil de empaquetar y ejecutar aplicaciones en un entorno aislado y reproducible. Docker resume los detalles del sistema operativo para abordar el desafo de implementar aplicaciones en diferentes entornos, como el desarrollo, las pruebas y la produccin. Puede resultar muy difcil gestionar las actualizaciones del entorno de software y mantener la uniformidad del entorno en todas partes. Esto es especialmente cierto para las organizaciones que ejecutan cientos de aplicaciones o las descomponen en cientos de microservicios. Docker aborda este problema mediante la contenedorizacin.
Docker es el nombre de la plataforma de contenedores de cdigo abierto que pertenece y es operada por la empresa Docker. Existen plataformas alternativas como Podman, aunque son mucho menos populares; Docker es sinnimo de contenedorizacin. El contenedor es el artefacto, la parte utilizable para el usuario final.
Una mquina virtual en s misma es la parte utilizable por el usuario final. La tecnologa no est asociada a una marca especfica. Puede implementar mquinas virtuales en centros de datos locales o acceder a ellas a travs de las API como un servicio de nube administrado.
Una mquina virtual ejecuta su propio ncleo y sistema operativo host, junto con las aplicaciones y sus dependencias, como bibliotecas y otros archivos binarios. Un hipervisor coordina entre el hardware (mquina o servidor host) y la mquina virtual. Asigna los recursos de hardware fsico descritos durante la instanciacin a la mquina virtual para su uso exclusivo. Pueden existir varias mquinas virtuales en un nico servidor potente, gestionado por un nico hipervisor, con cientos de aplicaciones ejecutndose en cada mquina virtual.
Un contenedor de Docker contiene solo sus dependencias. El software Docker Engine potencia la virtualizacin en Docker. Proporciona coordinacin entre los contenedores en ejecucin y el sistema operativo subyacente, ya sea una mquina fsica o virtual.
Los contenedores de Docker, por otro lado, utilizan recursos bajo demanda. En lugar de solicitar una cantidad especfica de recursos de hardware fsico como hacen las mquinas virtuales, simplemente solicitan lo que necesitan del ncleo nico del sistema operativo. Varios contenedores comparten el mismo sistema operativo. Los contenedores de Docker dirigen el intercambio de recursos con los lderes del ncleo y pueden utilizar menos recursos del sistema en comparacin con una mquina virtual.
Como los contenedores de Docker comparten el ncleo con el sistema operativo host para reducir el consumo de recursos, corren peligro si hay vulnerabilidades en el ncleo. Sin embargo, Docker tambin proporciona muchos controles de seguridad avanzados.
Por el contrario, dado que una mquina virtual ejecuta un sistema operativo completo, hay un nivel adicional de aislamiento al ejecutar aplicaciones. Las mquinas virtuales ofrecen una mayor seguridad siempre que el sistema operativo cuente con medidas de seguridad estrictas.
Los contenedores de Docker se ejecutan en la arquitectura Linux y requieren funciones especficas del ncleo de Linux, como espacios de nombres y grupos de control (cgroups). Los desarrolladores suelen ejecutar la plataforma Docker en mquinas virtuales basadas en Linux. Docker empaqueta el cdigo de la aplicacin en contenedores que se ejecutan en cualquier lugar. Las actualizaciones del entorno solo se realizan una vez en el contenedor. No es necesario que actualice el entorno de su aplicacin.
Docker es una plataforma de software para crear y ejecutar contenedores de Docker. Un contenedor de Docker es una emulacin de una instancia de espacio de usuario, la parte del sistema operativo en la que se ejecutan los procesos de usuario.
Las nuevas tecnologas estn experimentando una revolucin en los ltimos aos con la llegada de nuevos dispositivos pensados para facilitarnos la vida, tanto a nivel personal como profesional. Desde porttiles u ordenadores de sobremesa hasta telfonos mviles de ltima generacin. Sabas que hay dos elementos imprescindibles para que todos ellos puedan funcionar? En el siguiente artculo te vamos a ensear qu son y cul es la diferencia entre Hardware y Software. No pierdas detalle y descubre su importancia dentro del mundo de la informtica.
El hardware es la parte fsica de un dispositivo como puede ser un ordenador, un telfono mvil o una tablet. Esto incluye todos los componentes y accesorios: el ratn, la placa base, las memorias RAM y ROM, la pantalla, etctera. Asimismo, la impresora y los altavoces tambin pueden considerarse hardware. Es decir, son todos los elementos que permiten el correcto funcionamiento del dispositivo y que se pueden tocar. Gracias a este conjunto de perifricos y componentes electrnicos podemos procesar informacin, alimentar al sistema y contar con imgenes y sonidos.
El software, por su parte, es la agrupacin de programas y cdigos de lenguaje necesarios para dar rdenes y ejecutar distintas funciones. A diferencia del hardware, estos no se pueden tocar ya que no son elementos fsicos sino lgicos.
d3342ee215