Estibador | |
---|---|
Tipo de | software libre y de código abierto , mecanismo de virtualización [d] y formato de descripción del contenedor [d] |
Autor | Salomón Hykes [d] |
Desarrollador | estibador |
Escrito en | ir [1] |
Sistema operativo | Linux [2] , Microsoft Windows [3] , macOS [4] y sistema operativo similar a Unix |
Primera edición | 13 de marzo de 2013 [5] |
plataforma de hardware | x86_64 , BRAZO [6] e IBM System/390 |
ultima versión |
|
Formatos de archivo legibles | archivo acoplable [d] |
Formatos de archivo generados | archivo acoplable [d] |
Licencia | Licencia Apache 2.0 [8] [9] y propietaria |
Sitio web | ventana acoplable.com _ |
Archivos multimedia en Wikimedia Commons |
Docker es un software para automatizar el despliegue y la gestión de aplicaciones en entornos en contenedores , un contenedor de aplicaciones. Le permite "empaquetar" una aplicación con todos sus entornos y dependencias en un contenedor que se puede implementar en cualquier sistema Linux con soporte para cgroups el kernel y también proporciona un conjunto de comandos para administrar estos contenedores. Inicialmente, usó las capacidades de LXC , desde 2015 comenzó a usar su propia biblioteca, que abstrae las capacidades de virtualización del kernel de Linux: libcontainer . Con el advenimiento de Open Container Initiative, comenzó la transición de la arquitectura monolítica a la modular.
Es desarrollado y respaldado por la empresa emergente del mismo nombre , distribuido en dos ediciones: pública ( Community Edition ) bajo la licencia Apache 2.0 y para organizaciones ( Enterprise Edition ) bajo una licencia propietaria [10] . Escrito en el idioma Go .
El proyecto comenzó como un desarrollo propietario interno de dotCloud, fundado por Solomon Hykes en 2008 con el objetivo de construir una plataforma PaaS pública con soporte para varios lenguajes de programación . Junto con Hayks, los ingenieros de dotCloud Andrea Luzzardi y François-Xavier Bourlet desempeñaron un papel importante en el desarrollo inicial .
En marzo de 2013, el código Docker se lanzó bajo la licencia Apache 2.0 [11] . En junio de 2013, Ben Golub , quien anteriormente dirigió Gluster (que desarrolló la tecnología de almacenamiento distribuido GlusterFS y fue adquirida por $ 136 millones por Red Hat en 2011) [12] , fue invitado como director ejecutivo de dotCloud . En octubre de 2013, haciendo hincapié en el cambio de enfoque hacia una nueva tecnología clave, dotCloud pasó a llamarse Docker (mientras que la plataforma PaaS se mantuvo con el nombre anterior: dotCloud).
En octubre de 2013, se lanzó el lanzamiento de La Habana de la plataforma OpenStack IaaS replicada , que implementa el soporte de Docker (como controlador para OpenStack Nova). Desde noviembre de 2013 se incluye soporte parcial para Docker en el kit de distribución de Red Hat Enterprise Linux versión 6.5 [13] y soporte completo en la versión 20 del kit de distribución de Fedora , previamente se llegó a un acuerdo con Red Hat para incluir Docker en el plataforma OpenShift PaaS replicada de 2014 [14] . En diciembre de 2013, se anunció la compatibilidad con la implementación de contenedores Docker en el entorno Google Compute Engine [15] .
Desde 2014, se ha estado trabajando para incluir la compatibilidad con Docker en el entorno de gestión del marco de trabajo de aplicaciones distribuidas de Hadoop ; Según los resultados de las opciones de prueba para la plataforma de virtualización de Hadoop, realizadas en mayo de 2014, Docker mostró un rendimiento significativamente mayor en las operaciones principales (en la creación, reinicio y destrucción masivos de nodos virtuales) que KVM , en particular, en la prueba de En la creación masiva de nodos de cómputo virtual, se registra un incremento en el consumo de recursos del procesador en Docker 26 veces menor que en KVM, y el incremento en el consumo de recursos RAM es tres veces menor [16] .
Desde 2017, además de la edición del producto de distribución gratuita bajo la licencia Apache 2.0, se ha lanzado una edición para organizaciones, que se vende a precios que oscilan entre $750 y $2000 por nodo por año, dependiendo de las funciones disponibles [10] .
El software se ejecuta en un entorno Linux con un kernel que admite cgroups y aislamiento de espacios de nombres ( espacios de nombres ); hay compilaciones solo para plataformas x86-64 y ARM [18] . A partir de la versión 1.6 (abril de 2015), es posible utilizarlo en sistemas operativos de la familia Windows [19] .
Para ahorrar espacio de almacenamiento, el proyecto utiliza el sistema de archivos Aufs compatible con la tecnología de montaje combinado en cascada : los contenedores utilizan la imagen del sistema operativo base y los cambios se escriben en un área separada. También admite la colocación de contenedores en el sistema de archivos Btrfs con copia en escritura habilitada .
El software incluye un demonio de servidor de contenedores (ejecutado por el comando docker -d ), herramientas de cliente que le permiten administrar imágenes y contenedores desde la interfaz de línea de comandos y una API que le permite administrar contenedores mediante programación en estilo REST .
El daemon proporciona un aislamiento completo de los contenedores que se ejecutan en el nodo a nivel de sistema de archivos (cada contenedor tiene su propio sistema de archivos raíz ), a nivel de proceso (los procesos solo tienen acceso al propio sistema de archivos del contenedor y los recursos están separados por medio de libcontainer ), a nivel de red (cada contenedor tiene acceso solo al espacio de nombres de red asociado a él y a las interfaces de red virtual correspondientes).
El kit de herramientas del cliente le permite iniciar procesos en contenedores nuevos ( docker run ), detener e iniciar contenedores ( docker stop y docker start ), pausar y reanudar procesos en contenedores ( docker pause y docker unpause ). Una serie de comandos le permite monitorear los procesos en ejecución ( docker ps , similar a ps en sistemas Unix , docker top , similar a top y otros). Se pueden crear nuevas imágenes a partir de un archivo de script especial ( docker build , el archivo de script se llama Dockerfile ), es posible escribir todos los cambios realizados en el contenedor en una nueva imagen ( docker commit ). Todos los comandos pueden funcionar tanto con el demonio docker del sistema local como con cualquier servidor Docker disponible en la red. Además, la interfaz de línea de comandos tiene capacidades integradas para interactuar con el repositorio público de Docker Hub , que aloja imágenes de aplicaciones preconstruidas, por ejemplo, el comando de búsqueda de docker le permite buscar imágenes entre las alojadas en él [20] , las imágenes se pueden descargar al sistema local ( docker pull ), también es posible enviar imágenes creadas localmente a Docker Hub ( docker push ).
Docker también tiene un administrador de paquetes Docker Compose que le permite describir y ejecutar aplicaciones de múltiples contenedores; los archivos de configuración para él se describen en YAML .
![]() | |
---|---|
Foto, video y audio | |
sitios temáticos |