Docker (software)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Docker
www.docker.com y mobyproject.org
Docker (container engine) logo.png
Información general
Desarrollador(es) Docker, Inc. y Solomon Hykes
Autor(es) Solomon Hykes
Lanzamiento inicial 13 de marzo de 2013
Última versión estable 1.13.0[1]
18 de enero de 2017 (5 meses y 5 días)
Género Virtualización
Programado en Go
Sistema operativo Linux
Plataforma x86-64 con kernel de Linux
Licencia Apache License 2.0
[editar datos en Wikidata]

Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de Virtualización a nivel de sistema operativo en Linux.[2] Docker utiliza características de aislamiento de recursos del kernel de Linux, tales como cgroups y espacios de nombres (namespaces) para permitir que "contenedores" independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y mantener máquinas virtuales.[3]

El soporte del kernel de Linux para los espacios de nombres[4] aísla la vista que tiene una aplicación de su entorno operativo, incluyendo árboles de proceso, red, ID de usuario y sistemas de archivos montados, mientras que los cgroups del kernel proporcionan aislamiento de recursos, incluyendo la CPU, la memoria, el bloque de E / S y de la red. Desde la versión 0.9, Docker incluye la biblioteca libcontainer como su propia manera de utilizar directamente las facilidades de virtualización que ofrece el kernel de Linux, además de utilizar las interfaces abstraídas de virtualización mediante libvirt, LXC (Linux Containers) y systemd-nspawn.[5] [6] [7]

De acuerdo con la firma analista de la industria 451 Research, "Docker es una herramienta que puede empaquetar una aplicación y sus dependencias en un contenedor virtual que se puede ejecutar en cualquier servidor Linux. Esto ayuda a permitir la flexibilidad y portabilidad en donde la aplicación se puede ejecutar, ya sea en las instalaciones físicas, la nube pública, nube privada, etc.[8]

Resumen[editar]

Docker puede utilizar diferentes interfaces para acceder a las capacidades de virtualizacion del kernel de Linux.[7]

Docker implementa una API de alto nivel para proporcionar contenedores livianos que ejecutan procesos de manera aislada.[9]

Construido sobre las facilidades proporcionadas por el kernel de Linux (principalmente cgroups y namespaces), un contenedor Docker, a diferencia de una máquina virtual, no requiere incluir un sistema operativo independiente.[8] En su lugar, se basa en las funcionalidades del kernel y utiliza el aislamiento de recursos (CPU, la memoria, el bloque E / S, red, etc.) y namespaces separados para aislar la vista de una aplicación del sistema operativo. Docker accede a la virtualización del kernel de Linux ya sea directamente a través de la biblioteca libcontainer (disponible desde Docker 0.9), o indirectamente a través de libvirt, LXC o systemd-nspawn. [7] [10]

Mediante el uso de contenedores, los recursos pueden ser aislados, los servicios restringidos, y se otorga a los procesos la capacidad de tener una visión casi completamente privada del sistema operativo con su propio identificador de espacio de proceso, la estructura del sistema de archivos, y las interfaces de red. Contenedores múltiples comparten el mismo núcleo, pero cada contenedor puede ser restringido a utilizar sólo una cantidad definida de recursos como CPU, memoria y E / S.

Usando Docker para crear y gestionar contenedores puede simplificar la creación de sistemas altamente distribuidos, permitiendo múltiples aplicaciones, las tareas de los trabajadores y otros procesos para funcionar de forma autónoma en una única máquina física o en varias máquinas virtuales. Esto permite que el despliegue de nodos se realice a medida que se dispone de recursos o cuando se necesiten más nodos, lo que permite una plataforma como servicio (PaaS - Plataform as a Service) de estilo de despliegue y ampliación de los sistemas como Apache Cassandra, MongoDB o Riak. Docker también simplifica la creación y el funcionamiento de las tareas de carga de trabajo o las colas y otros sistemas distribuidos. [11] [12]

Integración[editar]

Docker se puede integrar con diferentes herramientas de infraestructura, como Amazon Web Services,[13] Ansible,[14] Cfengine,[15] Chef,[16] Google Cloud Platform,,[17] DigitalOcean,[18] IBM Bluemix,[19] Jelastic,[20] Jenkins,[21] Microsoft Azure,[22] OpenStack Nova,[23] OpenSVC,[24] Puppet,[25] Salt,[26] y Vagrant.[27]

El proyecto Cloud Foundry Diego integra Docker con Cloud Foundry PaaS. [28]

El proyecto GearD tiene como objetivo integrar Docker en el de Red Hat OpenShift Origin PaaS. [29]

Historia[editar]

Salomón Hykes comenzó Docker como un proyecto interno dentro dotCloud, empresa enfocado a una plataforma como un servicio (PaaS),[30] con las contribuciones iniciales de otros ingenieros de dotCloud, incluyendo Andrea Luzzardi y Francois-Xavier Bourlet. Jeff Lindsay también participó como colaborador independiente. Docker representa una evolución de la tecnología patentada de dotCloud, que es a su vez construida sobre proyectos de código abierto anteriores como Cloudlets.

Docker fue liberado como código abierto en marzo de 2013.[9] El 13 de marzo de 2014, con el lanzamiento de la versión 0.9, Docker dejó de utilizar LXC como el entorno de ejecución por defecto y lo reemplazó con su propia biblioteca, libcontainer, escrito en Go (lenguaje de programación).[5] [10] El 13 de abril de 2015, el proyecto tenía más de 20.700 estrellas de GitHub (haciéndolo uno de los proyectos con más estrellas de GitHub, en 20a posición), más de 4.700 bifurcaciones ("forks"), y casi 900 colaboradores.[31]

Un análisis en mayo de 2015 mostró las siguientes organizaciones como las principales contribuyentes de Docker: Red Hat (mayores contribuyentes, aún más que el equipo de Docker en sí), el equipo de Docker, IBM, Google, Cisco Systems y Amadeus IT Group.[32]

Colaboración[editar]

  • El 23 de julio de 2013, dotCloud Inc., la entidad comercial detrás de Docker, anunció que el ex CEO de Gluster y Plaxo, Ben Golub se había unido a la compañía, citando Docker como el principal foco de la empresa en adelante.[33]
  • El 23 de julio de 2014, Docker adquirió la Orchard, hacedores de Fig.[36]
  • El 16 de septiembre de 2014, Docker anunció que había completado una ronda de U$S 40 M de la Serie C, liderado por Sequoia Capital.[37]
  • El 15 de octubre de 2014, Microsoft anunció la integración del motor acoplable a la liberación de Windows Server 2016 y soporte nativo para el rol de cliente Docker en Windows.[38] [39]
  • El 4 de diciembre de 2014, IBM anunció una alianza estratégica con Docker que permite a las empresas a más eficiente, rápida y rentable generación y ejecución de la próxima generación de aplicaciones en la nube de IBM ("IBM Cloud").[40]
  • El 7 de junio de 2016, HPE anunció una alianza empresarial mundial con Docker que incluye una aproximación conjunta al mercado, venta de soluciones, ingeniería, soporte, servicios e intercambio de conocimientos para ayudar a los clientes a transformar y modernizar sus centros de datos, así como beneficiarse de un entorno de desarrollo más ágil. En el corazón de esta alianza está el programa HPE Docker Ready Server, único en la industria de los servidores, lo que garantiza que los servidores de HPE llevarán acoplado Docker y contarán con soporte comercial.[41]

Referencias[editar]

  1. «Release v1.13.0». docs.docker.com. Docker, Inc. 18 de enero de 2017. Consultado el 25 de enero de 2017. 
  2. O'Gara, Maureen (26 de julio de 2013). «Ben Golub, Who Sold Gluster to Red Hat, Now Running dotCloud». SYS-CON Media. Consultado el 9 de agosto de 2013. 
  3. «Docker Documentation: Kernel Requirements». docker.readthedocs.org. 4 de enero de 2014. Archivado desde el original el 21 de agosto de 2014. Consultado el 20 de agosto de 2014. 
  4. Dan Walsh. «Yet Another Reason Containers Don't Contain: Kernel Keyrings». projectatomic.io. Consultado el 13 de abril de 2015. 
  5. a b Steven J. Vaughan-Nichols (11 de junio de 2014). «Docker libcontainer unifies Linux container powers». ZDNet. Consultado el 30 de julio de 2014. 
  6. «libcontainer - reference implementation for containers». github.com. Consultado el 30 de julio de 2014. 
  7. a b c «Docker 0.9: Introducing execution drivers and libcontainer». docker.com. 10 de marzo de 2014. Consultado el 20 de enero de 2015. 
  8. a b Noyes, Katherine (1 de agosto de 2013). «Docker: A 'Shipping Container' for Linux Code». Linux.com. Consultado el 9 de agosto de 2013. 
  9. a b Avram, Abel (27 de marzo de 2013). «Docker: Automated and Consistent Software Deployments». InfoQ. Consultado el 9 de agosto de 2013. 
  10. a b Swan, Chris (13 de marzo de 2014). «Docker drops LXC as default execution environment». InfoQ. Consultado el 20 de enero de 2015. 
  11. Hall, Adron (31 de julio de 2013). «OSCON : Conversations, Deployments, Architecture, Docker and the Future?». CloudAve. Consultado el 9 de agosto de 2013. 
  12. Reeder, Travis (22 de abril de 2014). «How Docker Helped Us Achieve the (Near) Impossible». Iron.io. Consultado el 25 de julio de 2014. 
  13. «Amazon EC2 - Docker Documentation». docs.docker.com. Consultado el 18 de octubre de 2014. 
  14. /. «ansible/library/cloud/docker». GitHub. Consultado el 20 de enero de 2014. 
  15. «CFEngine». CFEngine. Archivado desde el original el 27 de noviembre de 2015. Consultado el 6 de junio de 2014. 
  16. «thoward/docker-cookbook». GitHub. Consultado el 20 de enero de 2014. 
  17. «Containers on Google Cloud Platform». Google Inc. 
  18. «Docker Tutorials | DigitalOcean». www.digitalocean.com. Consultado el 12 de julio de 2016. 
  19. «Bluemix Launches IBM Containers Beta Based on Docker». IBM. 4 de diciembre de 2014. Consultado el 20 de abril de 2015. 
  20. «Jelastic Announces Docker Integration to Provide the Most Advanced Orchestrated Application Delivery». PRWeb. Consultado el 3 de diciembre de 2014. 
  21. «georgebashi/jenkins-docker-plugin». GitHub. Consultado el 20 de enero de 2014. 
  22. «Here's how Microsoft is supporting the open-source Docker container model». ZDNet. 10 de junio de 2014. Consultado el 16 de octubre de 2014. 
  23. Stefano Maffulli  June 7th, 2013 (7 de junio de 2013). «OpenStack Community Weekly Newsletter (May 31 – June 7) » The OpenStack Blog». Openstack.org. Consultado el 20 de enero de 2014. 
  24. «OpenSVC Docker». OpenSVC. Archivado desde el original el 27 de noviembre de 2015. Consultado el 29 de mayo de 2014. 
  25. Gareth Rushgrove. «garethr/docker». Puppet Forge. Consultado el 20 de enero de 2014. 
  26. «saltstack/dockerio». Consultado el 20 de enero de 2014. 
  27. «philspitler/vagrant-docker». GitHub. Consultado el 20 de enero de 2014. 
  28. Whelan, Phil (2014-09-03). «Cloud Foundry: Diego Explained By Onsi Fakhouri». ActiveState. Consultado el 20 de abril de 2015. «Functionality is being added to enable end-users to push Docker images directly into a Cloud Foundry cluster running Diego.» 
  29. Jackson, Joab (2014-04-16). «Red Hat to update Docker container tech for enterprises: Open source vendor plans to incorporate advanced Linux tools such as systemd and SELinux into Docker». Computerworld (Computerworld, Inc.). Consultado el 29 de mayo de 2014. «Red Hat has also started a second community project, called GearD, to integrate Docker into its PaaS (platform-as-a-service) hosting software, OpenShift Origin.» 
  30. «One home for all your apps». dotCloud. Consultado el 8 de mayo de 2014. 
  31. «dotcloud/docker». GitHub. Consultado el 13 de abril de 2015. 
  32. «Look who's helping build Docker -- besides Docker itself». InfoWorld. 27 de mayo de 2015. 
  33. Darrow, Barb (23 de julio de 2013). «PaaS pioneer dotCloud gets new CEO in industry vet Ben Golub». GigaOM. Consultado el 9 de agosto de 2013. 
  34. «DotCloud Pivots And Wins Big With Docker, The Cloud Service Now Part Of Red Hat OpenShift». TechCrunch. 19 de septiembre de 2013. Consultado el 20 de enero de 2014. 
  35. Jordan Novet (January 21, 2014). «Docker's open-source bet pays off with $15M round». VentureBeat. Consultado el 22 de enero de 2014. 
  36. Ben Kepes (July 23, 2014). «Docker Makes Its Move, Acquires Orchard In A Sign Of Things To Come». Forbes. Consultado el 23 de julio de 2014. 
  37. Jack Clark and Peter Burrows (September 16, 2014). «Docker Said to Be Valued at $400 Million in Funding Round». Bloomberg. Consultado el 16 de septiembre de 2014. 
  38. Mary Jo Foley (15 de octubre de 2014). «Docker container support coming to Microsoft's next Windows Server release». ZDNet. Consultado el 16 de octubre de 2014. 
  39. Scott Guthrie (15 de octubre de 2014). «Docker and Microsoft: Integrating Docker with Windows Server and Microsoft Azure». Microsoft. Consultado el 12 de enero de 2015. 
  40. «IBM and Docker Announce Strategic Partnership to Deliver Enterprise Applications in the Cloud and On Prem». IBM. 4 de diciembre de 2014. Consultado el 20 de abril de 2015. 
  41. «Hewlett Packard Enterprise and Docker Partner to Power Distributed Applications Across Hybrid Infrastructure». HPE. 7 de junio de 2016. Consultado el 11 de agosto de 2016. 

Enlaces externos[editar]