DevOps

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.

Publicado el 05 de Mayo de 2014
Compartir

Qué es Docker y los contenedores

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.

Aprende DevOps para acelerar tus desarrollos de Software
Aprende las herramientas más importantes para acelerar el desarrollo de software: Jenkins, Docker, Kubernetes, Vagrant y más.
Comenzar gratis ahora

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 .

Aumenta la productividad de tu equipo de desarrollo
Desarrolla el talento de tu empresa 3 veces más rápido con formaciones prácticas y avanzadas de Cloud Computing y DevOps.
Solicitar más información

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.

Si estás interesado en hacer algún curso de Docker para completar tu formación, dentro de nuestra suscripción incluimos el curso de Docker para desarrolladores, un curso online y en español muy completo que te servirá para poder aplicar todas las ventajas Docker dentro de tus desarrollos personales y profesionales.

 


Compartir este post

También te puede interesar...

Tecnología

Qué aporta Docker al desarrollo de aplicaciones

04 Diciembre 2015 Esaú Abril Nuñez
Introducción a Docker

Curso de Introducción a Docker

1 hora y 45 minutos · Curso

Aprende los fundamentos de Docker y de la virtualización de contenedores con este curso de introducción a Docker online.

  • Contenedores
Artículos
Ver todos