Docher

Docher
Tip de software gratuit și open source , mecanism de virtualizare [d] și format de descriere a containerului [d]
Autor Solomon Hykes [d]
Dezvoltator docker
Scris in Du -te [1]
Sistem de operare Linux [2] , Microsoft Windows [3] , macOS [4] și sistem de operare asemănător Unix
Prima editie 13 martie 2013 [5]
Platformă hardware x86_64 , ARM [6] și IBM System/390
ultima versiune
Formate de fișiere care pot fi citite Dockerfile [d]
Formate de fișiere generate Dockerfile [d]
Licență Apache License 2.0 [8] [9] și proprietar
Site-ul web docker.com
 Fișiere media la Wikimedia Commons

Docker  este un software pentru automatizarea implementării și gestionării aplicațiilor în medii containerizate , un containerizator de aplicații. Vă permite să „împachetați” o aplicație cu toate mediile și dependențele sale într-un container care poate fi implementat pe orice sistem Linux cu suport pentru cgroups kernel și oferă, de asemenea, un set de comenzi pentru gestionarea acestor containere. Inițial, a folosit capacitățile LXC , din 2015 a început să folosească propria bibliotecă, care abstrage capacitățile de virtualizare ale kernelului Linux - libcontainer . Odată cu apariția Open Container Initiative, a început tranziția de la arhitectura monolitică la cea modulară.

Este dezvoltat și susținut de compania startup cu același nume , distribuită în două ediții - publică ( Community Edition ) sub licența Apache 2.0 și pentru organizații ( Enterprise Edition ) sub o licență proprietară [10] . Scris în limba Go .

Istorie

Proiectul a început ca o dezvoltare proprie internă a dotCloud, fondată de Solomon Hykes în 2008, cu scopul de a construi o platformă publică PaaS cu suport pentru diferite limbaje de programare . Alături de Hayks, inginerii dotCloud Andrea Luzzardi și François-Xavier Bourlet au jucat un rol semnificativ în dezvoltarea inițială .

În martie 2013, codul Docker a fost lansat sub licența Apache 2.0 [11] . În iunie 2013, Ben Golub , care a condus anterior Gluster (care a dezvoltat tehnologia de stocare distribuită GlusterFS și a fost achiziționat pentru 136 de milioane de dolari de către Red Hat în 2011) [12] , a fost invitat ca CEO al dotCloud . În octombrie 2013, subliniind schimbarea focalizării către o nouă tehnologie cheie, dotCloud a fost redenumit Docker (în timp ce platforma PaaS a fost păstrată sub fostul nume - dotCloud).  

În octombrie 2013, a fost lansată versiunea Havana a platformei replicate OpenStack IaaS , care implementează suportul Docker (ca driver pentru OpenStack Nova). Din noiembrie 2013, suportul parțial pentru Docker a fost inclus în kit-ul de distribuție Red Hat Enterprise Linux versiunea 6.5 [13] și suport complet în cea de-a 20-a versiune a kit-ului de distribuție Fedora , a fost încheiat anterior un acord cu Red Hat pentru a include Docker în platformă OpenShift PaaS replicată din 2014 [ 14] . În decembrie 2013, a fost anunțat suport pentru implementarea containerelor Docker în mediul Google Compute Engine [15] .

Din 2014, se lucrează pentru a include suportul Docker în mediul de gestionare a cadrului de aplicații distribuite Hadoop ; conform rezultatelor opțiunilor de testare pentru platforma de virtualizare pentru Hadoop, efectuate în mai 2014, Docker a arătat performanțe semnificativ mai mari la operațiunile principale (la crearea în masă, repornirea și distrugerea nodurilor virtuale) decât KVM , în special, la testul de crearea în masă a nodurilor de calcul virtuale, o creștere a consumului de resurse de procesor în Docker este înregistrată de 26 de ori mai mică decât în ​​KVM, iar creșterea consumului de resurse RAM  este de trei ori mai mică [16] .

Din 2017, pe lângă ediția distribuită gratuit a produsului sub licența Apache 2.0, a fost lansată o ediție pentru organizații, vândută la prețuri cuprinse între 750 USD și 2.000 USD pe nod pe an, în funcție de funcțiile disponibile [10] .

Aplicație

Software-ul rulează într-un mediu Linux cu un nucleu care acceptă cgroups și izolarea namespace ( namespaces ); există versiuni numai pentru platformele x86-64 și ARM [18] . Începând cu versiunea 1.6 (aprilie 2015), este posibilă utilizarea în sistemele de operare din familia Windows [19] .

Pentru a economisi spațiu de stocare, proiectul folosește sistemul de fișiere Aufs cu suport pentru tehnologia de montare combinată în cascadă : containerele folosesc imaginea sistemului de operare de bază, iar modificările sunt scrise într-o zonă separată. De asemenea, acceptă plasarea containerelor în sistemul de fișiere Btrfs cu copierea la scriere activată .

Software-ul include  un demon server container (rulat de comanda docker -d ), instrumente client care vă permit să gestionați imagini și containere din interfața de linie de comandă și un API care vă permite să gestionați programatic containerele în stil REST .

Daemonul oferă izolarea completă a containerelor care rulează pe nod la nivel de sistem de fișiere (fiecare container are propriul sistem de fișiere rădăcină ), la nivel de proces (procesele au acces numai la sistemul de fișiere propriu al containerului, iar resursele sunt separate prin intermediul libcontainer ), la nivel de rețea (fiecare container are acces numai la spațiul de nume de rețea asociat cu acesta și la interfețele de rețea virtuală corespunzătoare).

Setul de instrumente client vă permite să porniți procese în containere noi ( docker run ), să opriți și să porniți containere ( docker stop și docker start ), să întrerupeți și să reluați procesele în containere ( docker pause și docker unpause ). O serie de comenzi vă permite să monitorizați procesele care rulează ( docker ps , similar cu ps pe sistemele Unix , docker top , similar cu top și altele). Imaginile noi pot fi create dintr-un fișier script special ( docker build , fișierul script se numește Dockerfile ), este posibil să scrieți toate modificările făcute în container într-o nouă imagine ( docker commit ). Toate comenzile pot funcționa atât cu demonul docker al sistemului local, cât și cu orice server Docker disponibil în rețea. În plus, interfața de linie de comandă are capabilități încorporate pentru a interacționa cu depozitul public Docker Hub , care găzduiește imagini de aplicații pre-construite, de exemplu, comanda de căutare docker vă permite să căutați imagini printre cele găzduite în acesta [20] , imaginile pot fi descărcate în sistemul local ( docker pull ), este, de asemenea, posibil să împingeți imaginile construite local în Docker Hub ( docker push ).

Docker are, de asemenea, un manager de pachete Docker Compose care vă permite să descrieți și să rulați aplicații cu mai multe containere; fișierele de configurare pentru acesta sunt descrise în YAML .

Note

  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  (germană) - heise online , 2014.
  6. Tsai T. https://www.docker.com/blog/getting-started-with-docker-for-arm-on-linux/ - 2019.
  7. Lansarea v20.10.21
  8. https://github.com/docker/docker/blob/master/LICENSE
  9. LICENȚĂ  _
  10. 12 Thomas Claburn . Docker arată în ochi mare: nu ești tu, ci EE - Enterprise Edition . Direct din manualul Red Hat : Luați-vă imaginile VM și plătiți pentru asistență . Registrul (3 martie 2017) .  — „Docker și-a extins linia de produse prin adăugarea a două E, pentru Enterprise Edition, o versiune a software-ului său container adaptată la cerințele afacerilor […] Și, desigur, există niveluri, cu taxe pentru suport: Basic (750 USD/an) ; Standard (1.500 USD/an); și Avansat (2.000 USD/an)." Preluat la 29 iunie 2017. Arhivat din original la 1 iulie 2017.  
  11. Avram, Abel Docker : Implementări software automate și consistente  . InfoQ (27 martie 2013). Consultat la 3 mai 2014. Arhivat din original pe 3 mai 2014.
  12. Darrow, pionierul Barb PaaS, dotCloud, devine un nou CEO al veteranului din industrie Ben Golub . Fostul CEO al Gluster spune că PaaSes trebuie să accepte mai multe stive și medii - rulând în casă, cloud public,  oriunde . GigaOM (23 iulie 2013) . Consultat la 3 mai 2014. Arhivat din original pe 3 mai 2014.
  13. Sean Michael Kerner. Red Hat Enterprise Linux 6.5 oferă o sincronizare precisă . Noua versiune Linux Enterprise a Red Hat debutează cu noi funcții de securitate, virtualizare și menținere a timpului  (  link inaccesibil - istoric ) . eWeek (21 noiembrie 2013) . Preluat: 3 mai 2014.
  14. Williams, Alex Matricea iadului și două proiecte open-source pentru  cloud agnostic emergent . TechCrunch (28 iulie 2013). Preluat la 3 mai 2014. Arhivat din original la 24 septembrie 2016.
  15. Frederick Lardinois. Compute Engine  de la Google atinge disponibilitatea generală, scade prețurile instanțelor cu 10%, adaugă instanțe cu 16 nuclee și suport Docker . TechCrunch (19 septembrie 2013). Consultat la 3 mai 2014. Arhivat din original pe 2 mai 2014.
  16. Jack Clark. Docker a fost portat în Hadoop, deoarece benchmark-urile arată o performanță rapidă . Comiters codul speră că uniunea nesfântă a tehnologiei open source va genera o  virtualizare rapidă a lui Gonzalez . Registrul (2 mai 2014) .  - „Pe baza valorilor de utilizare a resurselor nodului de calcul în timpul testului de împachetare serial VM: creșterea procesorului Docker LXC este de aproximativ 26 de ori mai mică decât KVM. Pe această suprafață, aceasta indică o creștere potențială a densității de 26 ori din punct de vedere al procesorului folosind docker LXC față de un hypervisor tradițional. Creșterea memoriei Docker LXC este de aproximativ 3 ori mai mică decât KVM.”. Consultat la 3 mai 2014. Arhivat din original pe 3 mai 2014.
  17. Pethuru Rai; Jeeva S. Chelladhurai; Vinod Singh. Învățare Docker. - Editura Packt, 2015. - 240 p. — ISBN 978-1-78439-793-7 .
  18. Instalați Docker  . Documentația Docker. Preluat la 13 august 2017. Arhivat din original la 13 august 2017.
  19. Docker 1.6: Actualizări de motor și orchestrație, Registry 2.0 și Windows Client Preview - Docker Blog  , Docker Blog (  16 aprilie 2015). Arhivat din original pe 13 august 2017. Preluat la 13 august 2017.
  20. Depozitul se află la registry.hub.docker.com

Literatură

Link -uri