Estibador

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 .

Historia

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] .

Aplicación

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 .

Notas

  1. http://thenewstack.io/go-programming-language-helps-docker-container-ecosystem/
  2. https://docs.docker.com/engine/installation/linux/
  3. https://docs.docker.com/docker-for-windows/
  4. https://docs.docker.com/docker-for-mac/
  5. Schmidt J. Docker bekommt 15 Millionen Risikokapital  (alemán) - heise online , 2014.
  6. Tsai T. https://www.docker.com/blog/getting-started-with-docker-for-arm-on-linux/ - 2019.
  7. Versión v20.10.21
  8. https://github.com/docker/docker/blob/master/LICENCIA
  9. LICENCIA  _
  10. 12Thomas Claburn . Docker mira a los grandes negocios a los ojos: no eres tú, es EE - Enterprise Edition . Directamente del libro de jugadas de Red Hat : tome las imágenes de su máquina virtual y pague por el soporte . El Registro (3 de marzo de 2017) .  — “Docker ha ampliado su línea de productos al agregar dos E, para Enterprise Edition, una versión de su software de contenedor adaptada a las demandas de las empresas […] Y, por supuesto, hay niveles, con tarifas de soporte: Básico ($750/año) ; Estándar ($1,500/año); y Avanzado ($2,000/año)." Consultado el 29 de junio de 2017. Archivado desde el original el 1 de julio de 2017.  
  11. Avram, Abel Docker : Implementaciones de software consistentes y automatizadas  . InfoQ (27 de marzo de 2013). Consultado el 3 de mayo de 2014. Archivado desde el original el 3 de mayo de 2014.
  12. Darrow, Barb El pionero de PaaS dotCloud obtiene un nuevo director general en el veterano de la industria Ben Golub . El ex director ejecutivo de Gluster dice que los PaaSes deben admitir múltiples pilas y entornos, ejecutándose internamente, en nubes públicas,  en cualquier lugar . GigaOM (23 de julio de 2013) . Consultado el 3 de mayo de 2014. Archivado desde el original el 3 de mayo de 2014.
  13. Sean Michael Kerner. Red Hat Enterprise Linux 6.5 ofrece sincronización precisa . La nueva versión empresarial de Linux de Red Hat debuta con nuevas características de seguridad, virtualización y control de tiempo  (  historial de enlaces inaccesibles ) . Semana electrónica (21 de noviembre de 2013) . Consultado: 3 de mayo de 2014.
  14. Williams, Alex The Matrix Of Hell y dos proyectos de código abierto para The Emerging Agnostic  Cloud . TechCrunch (28 de julio de 2013). Consultado el 3 de mayo de 2014. Archivado desde el original el 24 de septiembre de 2016.
  15. Federico Lardinois. Compute Engine  de Google llega a la disponibilidad general, reduce los precios de las instancias en un 10 %, agrega instancias de 16 núcleos y compatibilidad con Docker . TechCrunch (19 de septiembre de 2013). Consultado el 3 de mayo de 2014. Archivado desde el original el 2 de mayo de 2014.
  16. JackClark. Docker se transfirió a Hadoop a medida que los puntos de referencia muestran un rendimiento increíblemente rápido . Los encargados del código esperan que la unión impía de la tecnología de código abierto genere una rápida  virtualización gonzález . El Registro (2 de mayo de 2014) .  - "Basado en las métricas de uso de recursos del nodo de cómputo durante la prueba de empaquetado de máquinas virtuales en serie: el crecimiento de la CPU de Docker LXC es aproximadamente 26 veces menor que el de KVM. En esta superficie, esto indica un aumento potencial de densidad de 26x desde el punto de vista de la CPU usando docker LXC frente a un hipervisor tradicional. El crecimiento de la memoria de Docker LXC es aproximadamente 3 veces menor que el de KVM". Consultado el 3 de mayo de 2014. Archivado desde el original el 3 de mayo de 2014.
  17. Pethuru Rai; Jeeva S. Chelladhurai; Vinod Singh. Docker de aprendizaje. - Editorial Packt, 2015. - 240 p. — ISBN 978-1-78439-793-7 .
  18. Instalar Docker  . Documentación de Docker. Consultado el 13 de agosto de 2017. Archivado desde el original el 13 de agosto de 2017.
  19. Docker 1.6: Engine & Orchestration Updates, Registry 2.0 y Windows Client Preview - Docker Blog  , Docker Blog (  16 de abril de 2015). Archivado desde el original el 13 de agosto de 2017. Consultado el 13 de agosto de 2017.
  20. El repositorio se encuentra en registration.hub.docker.com

Literatura

Enlaces