0 calificaciones0% encontró este documento útil (0 votos)
15 vistas2 páginas
Las máquinas virtuales virtualizan el hardware y sistema operativo completos, lo que consume muchos recursos. Los contenedores son más livianos al contener solo lo necesario para una aplicación en particular, aislándola del sistema operativo subyacente. Docker simplifica el uso de contenedores al permitir crear imágenes a partir de archivos Docker y luego ejecutar contenedores basados en esas imágenes de manera aislada y portable entre sistemas.
Las máquinas virtuales virtualizan el hardware y sistema operativo completos, lo que consume muchos recursos. Los contenedores son más livianos al contener solo lo necesario para una aplicación en particular, aislándola del sistema operativo subyacente. Docker simplifica el uso de contenedores al permitir crear imágenes a partir de archivos Docker y luego ejecutar contenedores basados en esas imágenes de manera aislada y portable entre sistemas.
Las máquinas virtuales virtualizan el hardware y sistema operativo completos, lo que consume muchos recursos. Los contenedores son más livianos al contener solo lo necesario para una aplicación en particular, aislándola del sistema operativo subyacente. Docker simplifica el uso de contenedores al permitir crear imágenes a partir de archivos Docker y luego ejecutar contenedores basados en esas imágenes de manera aislada y portable entre sistemas.
Es un entorno que se virtualiza un sistema operativo y un Hardware y del hardware
físico de la computadora se extrae un pedazo del procesador, memoria RAM, el disco duro, y se instala un sistema operativo. Al sistema operativo le hacemos creer que se encuentra en un sistema de hardware real pero la realidad esta virtualizado y esa es la base de las nubes. Todo el cloud computing funciona sobre máquinas virtuales. Pero a nivel de desarrollo de los programadores echando códigos, las máquinas virtuales son bastante pesadas consumen bastantes recursos, nosotros no necesitamos todo el sistema operativos Linux, Windows, todo MAC OS, para una simple aplicación. Lo que necesitamos para esto son los llamados contenedores Los contenedores Como su nombre lo dice contienen todo lo que necesita una aplicación para funcionar y nada mas que eso. Entremos en detalle en que son los contenedores son sencillo un entorno de ejecución para un software que contiene todas las dependencias que necesita el software lo interesante es que es un paquete asilado del sistema, es decir, que un contenedor podíamos tener una versión de Python y en otro contenedor otra versión de Python y de tal esto no hacen conflicto es lo espectacular no tienes que estar cambiando de versión que los contendores pueden convivir con el mismo sistema operativo sin hacer conflicto porque todo lo que esta dentro esta completamente aislado a esto se le llama contenedores porque son una metáfora de los contenedores en los que se transportan mercadería en los barcos donde hay una enorme caja de metal y todo lo que esta dentro está completamente aislado, entonces, los contendores son así, si todo está aislado estos pueden convivir con varios en el mismo sistema operativo con lo cual se resuelve el problema de que en mi maquina funciona porque ese contenedor es el que se replica en los diferentes entornos entonces el programador A tiene una réplica del contenedor así sucesivamente. En el servidor de integración hay una replica del servidor, en el servidor de pruebas, replica del servidor, entonces ya nos evitamos el lio porque todo esta aislado del sistema, la diferencia principal frente a una máquina virtual como ya dijimos carga todo el sistema operativo, en cambio un contendor solo necesita el kernel del sistema operativo, es decir, el núcleo y de ahí no necesita ningún otro componente así que es muy liviano y consume pocos recursos y es rápido para trabajar con él. Lo contendores comenzaron en Linux a partir de un concepto llamado Namespace. Los namespace los espacios de nombre lo que hacen es que un conjunto de aplicaciones tenga acceso a un conjunto especifico de recursos del sistema de tal manera cada conjunto de procesos no interfieran con los recursos que usando otro proceso luego de los namespace otro concepto se crea los c groups o grupos de control lo que hacen es permitir administrar el uso de recursos de determinados procesos y también el acceso a lo permisos así ellos. Utilizando estos conceptos de namespace y c grups lo que hacen es aislar los procesos del sistema operativo. En el año 2008 se crea el LXC el motor de contenedores de Linux es decir ya estamos en el concepto de contendores y ya no de procesos del sistema operativo para su propio funcionamiento si no de un entorno para desarrollar para crear nuevas aplicaciones, pero utilizando estas ventajas del aislamiento, entonces que es Docker es un gestor de contenedore es el mas utilizado en el mundo y empezó en el año 2013 utilizando este motor del que hablamos LXC y Linux. En el año 2014 ellos crean su propio motor de contendores llamado LIBCONTAINER que está escrito en go. Lo que hace Docker es simplificar la gestión de los contenedores porque el concepto contenedor existía mucho antes que apareciera Docker Pero con Docker todo se simplifica poque todo comienza por un Docker file entonces el trabajo con Docker se divide en tres etapas Docker file, Docker image, Docker container. Docker file, es un documento de texto donde contine todo los comandos e instrucciones para instalar todas las dependencias de una aplicación es como si fuera un manual. Docker image, con el Docker file se crea una imagen de Docker es donde contiene un ejecutable que ya contiene todos las dependencias y el software que vamos a correr ahí, a partir de ahí de esa imagen es que se puede crear los contendores si entiendes el concepto de programación orientada a objetos podemos decir que la imagen es la clase y los contenedores son los objetos, es decir, la instanciación de la imagen, es decir que el contendor es la imagen la parte donde esta corriendo donde ya puedo programar dentro de ese contenedor puesto que las imágenes se crean por un Docker file donde es un documento de texto en donde nosotros podemos llevar el registro de versiones en git, se llama registro de Docker con esto garantizamos que estamos en la versión correcta Docker container.