Comunidad de diseño web y desarrollo en internet online

Docker: La plataforma ideal para developers y sysadmins



Docker es un proyecto de software libre que permite la automatización de despliegue de aplicaciones dentro de contenedores, esto provee una capa adicional en la virtualización a nivel de sistema operativo en Linux. Docker usa recursos del sistemas totalmente aislados, función que la provee cgroups en Linux desde la versión 2.6.29, también se utilizan nombre de espacios en el kernel para la ejecución de instancias simples de Linux o también llamadas "contenedores" LXC (Linux Containers). En las últimas versiones de Docker se ha introducido drivers de Docker y una librería llamada libcontainer, que ayuda a que Docker sea totalmente multiplataforma, teniendo compatibilidad con Windows y Mac OS X, además de Linux.

El proyecto Docker ha recibido gran acogida por parte de la comunidad, y actualmente servicios como AWS (Amazon Web Service) dan soporte a esta tecnología.



El futuro de los SysAdmin y DevOps


Actualmente la mayoría de los sistemas en internet se ejecutan en servidores dedicados exclusivamente o en sistemas de computación en la nube, y hosting compartido. Pero gracias al desarollo del kernel Linux tenemos la posibilidad de tener entornos aislados de Linux, inclusive de una distribución distinta a la que esté instalada en el host, esto nos permitirá tener entornos virtualizados sin necesidad de virtualizar a través de hardware o software, aprovechando los recursos de la máquina en las aplicaciones que se ejecuten.

Con Docker todo esto se convierte en algo sencillo de hacer, así como VirtualBox lleva la virtualización a más personas, Docker lleva el uso de contenedores a más personas. El proyecto es joven, su primer release se publicó en el 2013, y actualmente se encuentra en la versión 1.2.

Antes de seguir hablando de Docker, es bueno definir el término "imágenes", dentro de Docker una imagen es una instancia de Linux básica o preconfigurada con las aplicaciones que queremos ejecutar.



Esto básicamente es una infraestructura sobre Docker, donde se tiene el motor de Docker (Docker Engine), que nos permite realizar todas las acciones sobre las imágenes que descarguemos o construyamos y dentro de las imágenes se encuentran las librerías, binarios que necesitamos y las aplicaciones.

Ya sabemos técnicamente que es Docker, pero, ¿Para qué me sirve?


El principal objetivo de Docker es simplificar la infraestructura de aplicaciones, para su despliegue y distribución, es decir, que si yo logro implementar Docker en una aplicación puedo distribuir ese contenedor entre otros desarrolladores (sin importar que sistema operativo usen), reduciendo el tiempo de implementación en desarrollo y producción dentro del equipo de trabajo, de esta manera la brecha entre desarrolladores y administradores de sistemas se vuelve más pequeña.

Docker da la posibilidad de tener todo el entorno para la aplicación y publicar los cambios que se realicen fácilmente, además de hacer todo el despliegue en producción de una manera bastante fácil y profesional.

Otra cosa que el proyecto nos ofrece es un repositorio de imágenes al estilo Github, Docker se convierte en el Github de los SysAdmin y DevOps, este componente del proyecto se llama Registry o Docker Hub y desde cualquier lugar podemos, crear, compartir y consumir imágenes creadas por nosotros o por terceros.

- ¿Que opinas sobre Docker?
- ¿Deseas conocer más sobre Docker?

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate