Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Docker, Qué es y sus principales características.

Esaú A.
  • Escrito por Esaú A. el 05 de Mayo de 2014
  • 4 min de lectura | Cloud Computing
Docker, Qué es y sus principales características.

El contenedor Linux se ha convertido en una herramienta que ayuda tanto a desarrolladores como a administradores de sistemas a probar aplicaciones o sistemas en un entorno seguro e igual al de producción, reduciendo así tiempos de pruebas y adaptaciones a cambios de hardware desde el entorno de prueba al de producción.

Con la tecnología de Docker podremos virtualizar un Linux con todas las aplicaciones que necesitemos dentro de nuestro sistema operativo Linux, para "empaquetarlo" y desplegarlo en cualquier otro Linux sin necesidad más que de introducir un par de comandos.

Docker es un proyecto de código abierto con el que fácilmente podremos crear "contenedores". Estos contenedores de Docker podríamos definirlos como máquinas virtuales ligeras , menos exigentes con los chips y memorias de los equipos donde se ejecutarán. Las características principales de estos contenedores son la portabilidad, la ligereza y la autosuficiencia:

Portabilidad.

El contenedor Docker podremos desplegarlo en cualquier otro sistema (que soporte esta tecnología), con lo que nos ahorraremos el tener que instalar en este nuevo entorno todas aquellas aplicaciones que normalmente usemos.

Ligereza.

El peso de este sistema no tiene comparación con cualquier otro sistema de virtualización más convencional que estemos acostumbrados a usar. Por poner un ejemplo, una de las herramientas de virtualización más extendida es VirtualBox, y cualquier imagen de Ubuntu que queramos usar en otro equipo pesará entorno a 1Gb si contamos únicamente con la instalación limpia del sistema. En cambio, un Ubuntu con Apache y una aplicación web, pesa alrededor de 180Mb, lo que nos demuestra un significativo ahorro a la hora de almacenar diversos contenedores que podamos desplegar con posterioridad.

Autosuficiencia.

Un contenedor Docker no contiene todo un sistema completo, sino únicamente aquellas librerías, archivos y configuraciones necesarias para desplegar las funcionalidades que contenga. Asimismo, Docker se encarga de la gestión del contenedor y de las aplicaciones que contenga.

Además, su ligereza hará las delicias del usuario, puesto que incluso en equipos con algunos años a sus espaldas se desenvuelve prácticamente igual que el sistema anfitrión, a parte de ofrecernos un entorno similar a Git para, a base de "capas", controlar cada cambio que se haga en la máquina virtual o contenedor.

Para obtener esta fluidez Docker extiende LXC (LinuX Containers) , un sistema de virtualización ligero que permite crear múltiples sistemas totalmente aislados entre si sobre la misma máquina o sistema anfitrión. Y todo dado que no se emula un sistema operativo completo, sólo las librerías y sistemas de archivos necesarios para la utilización de las aplicaciones que tengamos instaladas en cada contenedor.

El notable éxito de esta tecnología , se puede comprobar bien a través de todas sus virtudes, bien en la aceptación e implicación de grandes empresas que acogen este tipo de servicios en sus entornos de producción. Un ejemplo de ello es el de DigitalOcean que ofrece una aplicación para crear contenedores acoplables , así como Google ha afirmado ya que integrará soporte para este software .

Docker se compone de tres elementos fundamentales:

Contenedores Docker :

Son como un directorio, contienen todo lo necesario para que una aplicación pueda funcionar sin necesidad de acceder a un repositorio externo al contenedor. Cada uno de éstos es una plataforma de aplicaciones segura y aislada del resto que podamos encontrar o desplegar en la misma máquina host.

Imágenes Docker :

La imagen Docker podríamos entenderla como un SO con aplicaciones instaladas (Por ejemplo un OpenSUSE con un paquete ofimático). Sobre esta base podremos empezar a añadir aplicaciones que vayamos a necesitar en otro equipo donde tengamos intención de usar la imagen. Además Docker nos ofrece una forma muy sencilla de actualizar las imágenes que tengamos creadas, así como un sencillo método para crear nuevas imágenes.

Repositorios Docker :

También conocidos como Registros Docker, contienen imágenes creadas por los usuarios y puestas a disposición del público . Podemos encontrar repositorios públicos y totalmente gratuitos o repositorios privados donde tendremos que comprar las imágenes que necesitemos. Estos registros permiten desarrollar o desplegar aplicaciones de forma simple y rápida en base a plantillas, reduciendo el tiempo de creación o implementación de aplicaciones o sistemas.

¿Cómo funciona Docker?

En un principio contamos con una imagen base , sobre la que realizaremos los diferentes cambios. Tras confirmar estos cambios mediante la aplicación Docker , crearemos la imagen que usaremos. Esta imagen contiene únicamente las diferencias que hemos añadido con respecto a la base. Cada vez que queramos ejecutar esta imagen necesitaremos la base y las 'capas' de la imagen. Docker se encargará de acoplar la base, la imagen y las diferentes capas con los cambios para darnos el entorno que queremos desplegar para empezar a trabajar.

Desde su sitio oficial podemos ver que está disponible para Ubuntu, ArchLinux, Gentoo, Fedora, OpenSUSE y FrugalWare , así como desde el propio código binario de la aplicación. Además también tenemos indicaciones para poder desplegar contenedores bajo entornos Windows, Mac, Amazon EC2, Rackspace o Google Cloud .

Y para terminar un resumen con las principales características y funcionalidades de Docker :

  • Autogestión de los contenedores.
  • Fiabilidad .
  • Aplicaciones libres de las dependencias instaladas en el sistema anfitrión.
  • Capacidad para desplegar multitud de contenedores en un mismo equipo físico.
  • Puesta en marcha de los servicios en un abrir y cerrar de ojos.
  • Contenedores muy livianos que facilitan su almacenaje, transporte y despliegue.
  • Capacidad para ejecutar una amplia gama de aplicaciones (prácticamente cualquier cosa que se nos ocurra podrá ejecutarse en un contenedor Docker).
  • Compatibilidad Multi-Sistema , podremos desplegar nuestros contenedores en multitud de plataformas.
  • La aplicación base de Docker gestionará los recursos existentes para asignarlos responsablemente entre los contenedores desplegados.
  • Podremos establecer una base desde la que comenzar nuestros proyectos, lo que nos ahorrará el tiempo de preparar el entorno para cada uno de ellos.
  • Podremos compartir nuestros contenedores para aumentar los repositorios de Docker así como beneficiarnos de los que compartan los demás.

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars