Docker és un projecte de codi obert que automatitza el desplegament d'aplicacions dins de contenidors de programari, proporcionant així una capa addicional d'abstracció i automatització de virtualització d'aplicacions en diferents sistemes operatius.[1]

Docker
Modifica el valor a Wikidata

Tipusprogramari lliure i de codi obert, virtualization engine (en) Tradueix, format de contenidor digital i programari lliure Modifica el valor a Wikidata
Versió inicial
13 març 2013 Modifica el valor a Wikidata
Versió estable
26.1.0 (22 abril 2024) Modifica el valor a Wikidata
Llicènciallicència de propietat
Llicència Apache, versió 2.0 Modifica el valor a Wikidata
Característiques tècniques
Sistema operatiuLinux, Microsoft Windows, macOS i Unix-like Modifica el valor a Wikidata
Plataformax86-64 amb kernel Linux
Escrit enGo Modifica el valor a Wikidata
Format de fitxer de lectura
Format de fitxer d'escriptura
Equip
Creador/sSolomon Hykes
Desenvolupador(s)Docker, Inc. Modifica el valor a Wikidata
Més informació
Lloc webdocker.com (anglès) Modifica el valor a Wikidata
Stack ExchangeEtiqueta Modifica el valor a Wikidata
Id. Subredditdocker Modifica el valor a Wikidata

Facebook: docker.run Twitter (X): Docker Youtube: UC76AVf2JkrwjxNKMuPpscHQ Youtube: DockerInc GitHub: docker Modifica el valor a Wikidata

Docker utilitza característiques d'aïllament de recursos del nucli de Linux, com ara cgroups i espais de noms (namespaces) per permetre que «contenidors» independents s'executin dins d'una sola instància de Linux, evitant d'aquesta manera la sobrecàrrega que implica iniciar i mantenir màquines virtuals.[2]

El suport del kernel de Linux per als espais de noms aïlla allò que pot accedir una aplicació del seu entorn operatiu, incloent-hi arbres de procés, xarxa, identificador d'usuari i sistemes de fitxers muntats, mentre que els cgroups del nucli proporcionen aïllament de recursos, incloent-hi la CPU, la memòria, el bloc d'E/S i de la xarxa.[3]

Des de la versió 0.9, Docker inclou la biblioteca libcontainer com la seva pròpia manera d'utilitzar directament les facilitats de virtualització que ofereix el nucli de Linux, a més d'utilitzar les interfícies abstretes de virtualització mitjançant libvirt, LXC (Linux Containers) i systemd-nspawn.[4][5][6]

D'acord amb la companyia analista de la indústria 451 Research, «Docker és una eina que pot empaquetar una aplicació i les seves dependències en un contenidor virtual que es pot executar en qualsevol servidor Linux. Això ajuda a permetre la flexibilitat i portabilitat on l'aplicació es pot executar, ja sigui en instal·lacions físiques, en un núvol públic o núvol privat, etc.»[7]

Resum modifica

 
Docker pot utilitzar diferents interfícies per accedir a les capacitats de virtualització del nucli de Linux.[6]

Docker implementa una API d'alt nivell per proporcionar contenidors lleugers que executen processos de manera aïllada.[8]

Construït sobre les facilitats proporcionades pel nucli de Linux (principalment cgroups i namespaces), un contenidor Docker, a diferència d'una màquina virtual, no requereix incloure un sistema operatiu independent.[7] En el seu lloc, es basa en les funcionalitats del nucli i utilitza l'aïllament de recursos (CPU, la memòria, el bloc E/S, xarxa, etc.) i espai de noms separats per aïllar l'accés d'una aplicació al sistema operatiu. Docker accedeix a la virtualització del nucli de Linux ja sigui directament a través de la biblioteca libcontainer (disponible des de Docker 0.9), o indirectament a través de libvirt, LXC o systemd-nspawn.[6][9]

Mitjançant l'ús de contenidors, els recursos poden ser aïllats, els serveis restringits, i s'atorga als processos la capacitat de tenir un accés gairebéprivat del sistema operatiu amb el seu propi identificador d'espai de procés, l'estructura del sistema de fitxers, i les interfícies de xarxa. Diferents contenidors comparteixen el mateix nucli, però cada contenidor pot ser restringit a utilitzar només una quantitat definida de recursos, com ara CPU, memòria i E/S.

Fer servir Docker per crear i gestionar contenidors pot simplificar la creació de sistemes altament distribuïts, permetent que diferents aplicacions i altres processos funcionin de forma autònoma en una única màquina física o en diverses màquines virtuals. Això permet que el desplegament de nodes es realitzi a mesura que es disposa de recursos o quan es necessitin més nodes, la qual cosa permet una plataforma com a servei d'estil de desplegament i ampliació dels sistemes com a Apache Cassandra, MongoDB o Riak. Docker també simplifica la creació i el funcionament de les tasques de càrrega de treball o les cues, com també altres sistemes distribuïts.[10][11]

Història modifica

Solomon Hykes va començar Docker com un projecte intern dins de dotCloud, una empresa que treballava en una plataforma com un servei (PaaS), juntament amb les contribucions d'altres enginyers la mateixa empresa, com ara Andrea Luzzardi i Francois-Xavier Bourlet.[12][13] Jeff Lindsay també va participar-hi com a col·laborador independent. Docker representa una evolució de la tecnologia patentada de dotCloud, que és al seu torn construïda sobre projectes de codi obert anteriors com Cloudlets.

Docker va ser alliberat com a codi obert al març de 2013.[8] El 13 de març de 2014, amb el llançament de la versió 0.9, Docker va deixar d'utilitzar LXC com a entorn d'execució per defecte i ho va reemplaçar amb la seva pròpia biblioteca, libcontainer, escrita en el llenguatge de programació Go.

Una anàlisi en 2018 va mostrar les següents organitzacions com les principals contribuents de Docker: Red Hat (el principal contribuïdor, encara més que l'equip de Docker en si), l'equip de Docker, Microsoft, IBM, Google, Cisco Systems i Amadeus IT Group.[14]

Vegeu també modifica

Referències modifica

  1. O'Gara, Maureen. «Ben Golub, Who Sold Gluster to Red Hat, Now Running dotCloud». SYS-CON Media, 26-07-2013. Arxivat de l'original el 2019-09-13. [Consulta: 9 agost 2013].
  2. «Docker Documentation: Kernel Requirements». docker.readthedocs.org, 04-01-2014. Arxivat de l'original el 21 d'agost de 2014. [Consulta: 20 agost 2014].
  3. «Yet Another Reason Containers Don't Contain: Kernel Keyrings». projectatomic.io. Arxivat de l'original el 2015-04-13. [Consulta: 13 abril 2015].
  4. «Docker libcontainer unifies Linux container powers». ZDNet, 11-06-2014. [Consulta: 30 juliol 2014].
  5. «libcontainer - reference implementation for containers». github.com. [Consulta: 30 juliol 2014].
  6. 6,0 6,1 6,2 «Docker 0.9: Introducing execution drivers and libcontainer». docker.com, 10-03-2014. Arxivat de l'original el 2015-02-21. [Consulta: 20 gener 2015].
  7. 7,0 7,1 Noyes, Katherine. «Docker: A 'Shipping Container' for Linux Code». Linux.com, 01-08-2013. [Consulta: 9 agost 2013].
  8. 8,0 8,1 Avram, Abel. «Docker: Automated and Consistent Software Deployments». InfoQ, 27-03-2013. [Consulta: 9 agost 2013].
  9. Swan, Chris. «Docker drops LXC as default execution environment». InfoQ, 13-03-2014. [Consulta: 20 gener 2015].
  10. Hall, Adron. «OSCON : Conversations, Deployments, Architecture, Docker and the Future?». CloudAve, 31-07-2013. Arxivat de l'original el 2019-03-27. [Consulta: 9 agost 2013].
  11. Reeder, Travis. «How Docker Helped Us Achieve the (Near) Impossible». Iron.io, 22-04-2014. Arxivat de l'original el 8 d'agost de 2014. [Consulta: 25 juliol 2014].
  12. Krazit. «Docker founder Solomon Hykes leaving company, cites need for enterprise-focused CTO» (html). Geekwire, 28-03-2018. Arxivat de l'original el 18 de febrer de 2019. [Consulta: 12 març 2019].
  13. «One home for all your apps». dotCloud. Arxivat de l'original el 17 de maig de 2014. [Consulta: 8 maig 2014].
  14. «Look who's helping build Docker -- besides Docker itself». InfoWorld, 27-05-2015.

Enllaços externs modifica