Docker

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

Docker es un proyecto de código abierto capaz de automatizar el despliegue de aplicaciones dentro de contenedores de software, proporcionándonos así una capa adicional de abstracción y automatización en el nivel de virtualización de sistema operativo sobre Linux.[1]​ Docker hace uso de las utilidades de aislamiento de recursos del núcleo de linux como los cgroups y espacios de nombre del kernel, para permitir que "contenedores" independientes se ejecuten como una instancia única de Linux, , evitando así la elevada sobrecarga en el arranque y mantenimiento de máquinas virtuales.[2]

El soporte de espacios de nombres en el núcleo de Linux principalmente aisla una aplicación del entorno de operación, incluyendo árboles de procesos, IDs de usuario y sistemas de archivo montados, mientras que los cgroups proporcionan aislamiento de recursos, incluyendo la CPU, memoria, E/S de bloques y red. Desde la versión 0.9 Docker incluye la biblioteca libcontainer como su propia manera de utilizar directamente las facilidades de virtualización proporcionadas por el núcleo de linux, además de utilizar virtualización abstracta de interfaces a través de libvirt, LXC (contenedores de Linux) y systemd-nspawn.[3][4][5]

Según la firma de analistas 451 Research, "Docker es una herramienta que puede empaquetar una aplicación y sus dependencias en un contenedor virtual, que a su vez puede correr en cualquier servidor de Linux. Esto proporciona flexibilidad y portabilidad allí donde la aplicación pueda ser ejecutada, como en una nube pública, una nube privada, máquina física, etc."[6]

Visión general[editar]

Docker puede utilizar diferentes interfaces para acceder a las características de virtualización del núcleo de Linux.[5]

Docker implementa una API de alto nivel para proporcionar contenedores ligeros que ejecutan procesos aislados.[7]​ Al construirse por encima de facilidades proporcionadas por el propio núcleo de Linux (principalmente cgroups y namespaces), un contenedor Docker, a diferencia de una máquina virtual, no requiere o incluye un sistema operativo separado.[6]​ En su lugar, delega en las funcionalidades del núcleo para hacer uso del aislamiento de recursos (CPU, memoria, E/S de bloques, red, etc.), y espacios de nombres separados para aislar el acceso de la aplicación al resto del sistema operativo. Docker accede a las utilidades de virtualización del núcleo de Linux directamente utilizando la librería libcontainer, la cual está disponible desde la versión 0.9 de Docker, o indirectamente vía libvirt, LXC (contenedores de Linux) o systemd-nspawn.[5][8]

Al utilizar contenedores, los recursos pueden ser aislados, los servicios se restringen a su ámbito, y los procesos se aprovisionan para tener una visión privada y parcial del sistema operativo con su propio espacio de procesos, estructura de sistema de archivo, e interfaces de red. Múltiples contenedores comparten el mismo núcleo, pero cada contenedor se limita a utilizar sólo una cantidad definida de recursos como CPU, memoria o E/S.

Utilizar Docker para crear y gestionar contenedores puede simplificar la creación de sistemas altamente distribuidos, permitiendo que múltiples aplicaciones, tareas y otros procesos ejecutarse de manera autónoma en una única máquina física o entre múltiples máquinas virtuales. Esto permite que el despliegue de nodos se realice tan pronto como los recursos estén disponibles, o cuando se necesitan más nodos, permitiendo un despliege y escalado al estilo plataforma como servicio (PaaS) para sistemas como Apache Cassandra, MongoDB o Riak. Docker También simplifica la creación y operación con tareas o colas de trabajo, y otros sistemas distribuidos.[9][10]

Integración[editar]

Docker puede integrarse con varias herramientas de infraestructura, incluyendo Amazon Web Services, Ansible, CFEngine, Chef, Google Cloud Platform, IBM Bluemix, Jelastic, Jenkins, Microsoft Azure, OpenStack Nova, OpenSVC, Puppet, Salt, y Vagrant.[11][12][13][14][15][16][17][18][19][20][21][22][23][24]​ En respuesta a la disponibilidad de estas integraciónes, la plataforma de monitoreo, Datadog, desarrolló un reportaje sobre la tasa de adopción de los servicios de Docker por 7,000 empresas con infraestructuras basadas en la nube.[25]

El proyecto GearD pretende integrar Docker en la plataforma OpenShift de Red Hat.[26]

Historia[editar]

Solomon Hykes empezó Docker como un proyecto interno dentro de dotCloud, una compañía de plataforma como servicio, con contribuciones de otros ingenieros de dotCloud como Andrea Luzzardi y Francois-Xavier Bourlet.[27]Jeff Lindsay estuvo también implicado como colaborador independiente. Docker representa una evolución de la tecnología propietaria de dotCloud, que a su vez estaba basada en proyectos de código-abierto anteriores como Cloudlets.

Docker fue liberado como proyecto de código abierto el 13 de marzo de 2014,[7]​ con la publicación 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 librería libcontainer escrita en el lenguaje de programación Go.[3][8]​ El 13 de abril de 2015 el proyecto acumula más de 20.700 estrellas en GitHub (haciéndolo el 20º proyecto más valorado), y casi 900 colaboradores.[28]

En mayo de 2015 podemos observar las siguientes organizaciones como las principales colaboradores del proyecto: Red Hat (los principales colaboradores, contribuyendo incluso más que el propio equipo de Docker), el equipo de Docker, IBM, Google, Cisco Systems y Amadeus IT Grup.[29]

Colaboración[editar]

  • El 23 de julio de 2013, dotCloud, Inc., la empresa detrás de Docker, anuncia que el anterior CEO de Gluster y Plaxo, Ben Golub, se une a la compañía, citando Docker como el foco de atención principal de la compañía.[30]
  • El 19 de septiembre de 2013, Red Hat y Docker anuncian una colaboración conjunta con Fedora, Red Hat Linux, y OpenShift.[31]
  • El 22 de enero de 2014, Docker anuncia que ha conseguido una financiación de 15 millones de dólares en capital de riesgo, captación liderada por Greylock Partners.[32]
  • El 23 de julio de 2014, Docker adquiere Orchad, creadores de Fig.[33]
  • El 16 de septiembre de 2014, Docker anuncia que ha completado otra captación de capital de 40 millones de dólares, dirigida por Sequoia Capital.[34]
  • El 15 de octubre de 2014, Microsoft anuncia la integración del motor de Docker en la próxima (2016) versión de Windows Server, y soporte nativo para el cliente de Docker en Windows.[35][36]
  • El 4 de diciembre de 2014, IBM anunció una alianza estratégica con Docker que permita a las empresas la creación y ejecución de aplicaciones en el Cloud de IBM de manera más eficiente, rápida y barata.[37]

Véase también[editar]

Referencias (inglés)[editar]

  1. 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. 
  2. «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. 
  3. 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. 
  4. «libcontainer - reference implementation for containers». github.com. Consultado el 30 de julio de 2014. 
  5. 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. 
  6. 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. 
  7. a b Avram, Abel (27 de marzo de 2013). «Docker: Automated and Consistent Software Deployments». InfoQ. Consultado el 9 de agosto de 2013. 
  8. a b Swan, Chris (13 de marzo de 2014). «Docker drops LXC as default execution environment». InfoQ. Consultado el 20 de enero de 2015. 
  9. Hall, Adron (31 de julio de 2013). «OSCON : Conversations, Deployments, Architecture, Docker and the Future?». CloudAve. Consultado el 9 de agosto de 2013. 
  10. Reeder, Travis (22 de abril de 2014). «How Docker Helped Us Achieve the (Near) Impossible». Iron.io. Consultado el 25 de julio de 2014. 
  11. «Amazon EC2 - Docker Documentation». docs.docker.com. Consultado el 18 de octubre de 2014. 
  12. /. «ansible/library/cloud/docker». GitHub. Consultado el 20 de enero de 2014. 
  13. «CFEngine». CFEngine. Archivado desde el original el 27 de noviembre de 2015. Consultado el 6 de junio de 2014. 
  14. «thoward/docker-cookbook». GitHub. Consultado el 20 de enero de 2014. 
  15. «Containers on Google Cloud Platform». Google Inc. 
  16. «Bluemix Launches IBM Containers Beta Based on Docker». IBM. 4 de diciembre de 2014. Consultado el 20 de abril de 2015. 
  17. «Jelastic Announces Docker Integration to Provide the Most Advanced Orchestrated Application Delivery». PRWeb. Consultado el 3 de diciembre de 2014. 
  18. «georgebashi/jenkins-docker-plugin». GitHub. Consultado el 20 de enero de 2014. 
  19. «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. 
  20. 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. 
  21. «OpenSVC Docker». OpenSVC. Archivado desde el original el 27 de noviembre de 2015. Consultado el 29 de mayo de 2014. 
  22. Gareth Rushgrove. «garethr/docker». Puppet Forge. Consultado el 20 de enero de 2014. 
  23. «saltstack/dockerio». Consultado el 20 de enero de 2014. 
  24. «philspitler/vagrant-docker». GitHub. Consultado el 20 de enero de 2014. 
  25. «8 surprising facts about real Docker adoption - Datadog». Datadog (en inglés estadounidense). Consultado el 1 de febrero de 2016. 
  26. 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.» 
  27. «One home for all your apps». dotCloud. Consultado el 8 de mayo de 2014. 
  28. «dotcloud/docker». GitHub. Consultado el 13 de abril de 2015. 
  29. «Look who's helping build Docker -- besides Docker itself». InfoWorld. 27 de mayo de 2015. 
  30. 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. 
  31. «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. 
  32. Jordan Novet (January 21, 2014). «Docker's open-source bet pays off with $15M round». VentureBeat. Consultado el 22 de enero de 2014. 
  33. 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. 
  34. 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. 
  35. 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. 
  36. 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. 
  37. «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. 

Enlaces externos[editar]