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 .
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] .
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 .
![]() | |
---|---|
Foto, video și audio | |
Site-uri tematice |