Docher creeaza pachete de aplicatii numite containere. Fiecare container oferă un mediu izolat similar unui mașină virtuală (VM). Spre deosebire de containere, Docker memoriile virtuale nu rulează un sistem de operare completă . Ele împărtășesc kernel-ului și Virtualizați gazdei dvs. la un nivel de software.
Docker de bază
Docker a devenit un instrument standard pentru dezvoltatorii de software și administratorii de sistem. Este un mod elegant de a lansa rapid aplicații fără a afecta restul sistemului. Puteți roti un nou serviciu cu un singur
Docker Run
comanda.
Containere îngloba tot ce este necesar pentru a rula o aplicație, de la dependențele sistem de operare pentru propriul cod sursă. Puteți defini etapele de creare a unui container ca instrucțiuni într-o
Dockerfile
. Docker foloseste Dockerfile pentru a construi un
imagine
.
Imaginile definesc software-ul disponibil în containere. Acest lucru este vag echivalent cu pornirea unei VM cu un sistem de operare ISO. Dacă creați o imagine, orice utilizator Docker va fi capabil de a lansa aplicația cu
Docker Run
.
Cum se Docker de lucru?
Containerele utilizează operare nucleu sistem caracteristici pentru a oferi un mediu parțial virtualizate. Este posibil de a crea containere de la zero cu comenzi, cum ar fi
Chroot.
. Acesta începe un proces cu un director rădăcină specificat în loc de rădăcină de sistem. Dar folosind kernel caracteristici direct este fiddly, nesigur, și predispuse la erori.
Docker este o soluție completă pentru producția, distribuția și utilizarea containerelor. moderne de presă Docker sunt alcătuite din mai multe componente independente . În primul rând, nu e docher CLI , Care este ceea ce interacționați cu în terminalul. CLI trimite comenzi către un Docker daemon . Acest lucru poate rula la nivel local sau pe o gazdă de la distanță . Daemon este responsabil pentru gestionarea containerelor și imaginile pe care le sunt create de la.
Componenta finală se numește rulare container . De rulare nucleu Invocă caracteristici pentru a fapt containere de lansare. Docker este compatibil cu runtimes care aderă la caietul de sarcini OCI. Acest standard deschis permite interoperabilitatea între diferite instrumente de containerizare.
Nu aveți nevoie să vă faceți griji prea mult despre activitatea internă Docker lui atunci când prima începe. Instalare
docher
pe sistemul dumneavoastră vă va da tot ce ai nevoie pentru a construi și containere rula.
De ce atât de mulți oameni folosesc Docker?
Containerele au devenit atât de popular, deoarece acestea rezolva multe provocări comune în dezvoltarea de software. Capacitatea de a containerize o dată și a alerga peste tot reduce decalajul dintre mediul de dezvoltare și de serverele de producție.
Utilizarea containerelor vă dă încredere că fiecare mediu este identic. Dacă aveți un nou membru al echipei, ei trebuie doar să
Docker Run
pentru a configura propria lor instanță de dezvoltare. Când lansați serviciul, puteți utiliza imaginea Docker pentru a implementa la producție. În
mediu viu
se va potrivi exact exemplu local, evitând „funcționează pe masina mea“ scenarii.
Docker este mai convenabil decât o mașină virtuală plină floare. Mașinile virtuale sunt instrumente de uz general destinate să sprijine orice volum de lucru este posibil. Prin contrast, containerele sunt ușoare, auto-suficiente, și mai potrivite pentru a throwaway cazuri de utilizare. Așa cum Docker împărtășește kernel-ul gazdei, containerele au un impact neglijabil asupra performanței sistemului. Container timp de lansare este aproape instantaneu, cum te numai procese, nu un întreg sistem de operare de pornire.
Noțiuni de bază
Docker este disponibil pe toate distribuțiile Linux populare. De asemenea, se ruleaza pe Windows și MacOS. Urmează instrucțiuni de configurare Docker pentru platforma dvs. să-l pună în funcțiune.
Puteți verifica faptul că instalarea este de lucru prin pornirea unui container simplu:
docher run-alo lume
Acest lucru va începe un nou container cu bază
Salut Lume
imagine. Imaginea emite o anumită ieșire care explică modul de utilizare Docker. Containerul apoi iese, vă dropping înapoi la terminalul.
crearea de imagini
După ce ați rula
Salut Lume
, Sunteți gata să creați propriile imagini Docker. Un Dockerfile descrie modul de a rula serviciul dvs.
instalarea software-ului necesar
și copierea în fișiere. Iată un exemplu simplu folosind serverul de web Apache:
De la httpd: cele mai recente "Modulele LoadModule headers_module / mod_headers.so" RUN echo & gt; & gt; /usr/local/apache2/conf/httpd.conf COPY .htaccess /var/www/html/.htaccess COPY index.html /var/www/html/index.html COPY css / / var / www / html / css
În
DIN
line definește imaginea de bază. În acest caz, începem din imagine oficială Apache. Docker aplică instrucțiunile rămase în Dockerfile pe partea de sus a imaginii de bază.
În
ALERGA
etapă se execută o comandă în interiorul containerului. Acest lucru poate fi orice comandă disponibilă în mediul containerului. Suntem permită unui
antete
Apache modul, care ar putea fi utilizat de către
.htaccess
fișier pentru a configura de rutare norme.
Rândurile finale copia fișierele CSS HTML și în directorul de lucru în imaginea containerului. Imaginea dvs. conține acum tot ce ai nevoie pentru a rula site-ul dumneavoastră.
Acum, puteți construi imaginea:
docher construi -t mea site-ul web: v1.
Docker va folosi Dockerfile dvs. pentru a construi imaginea. Veți vedea de ieșire din terminalul ca Docker rulează fiecare dintre instrucțiunile dumneavoastră.
În
-t
în comanda
etichetează imaginea
cu un nume dat (
mi-site-ul: v1
). Acest lucru face mai ușor să se facă referire în viitor. Tag-uri au două componente, separate de două puncte. Prima parte setează numele imaginii, în timp ce a doua se referă, de obicei, versiunea sa. Dacă omiteți colon, Docker va implicit
la utilizarea
cele mai recente
ca versiune tag-ul.
În
.
la sfârșitul comenzii spune Docker de a utiliza Dockerfile în directorul de lucru locale. Acesta de asemenea
stabilește contextul construi
, Permițându-vă să utilizați fișiere și foldere în directorul de lucru cu
COPIE
instrucțiuni în Dockerfile dumneavoastră.
După ce ați creat imaginea, puteți începe un container utilizând
Docker Run
:
docher alerga -d -p 8080: 80 mea site-ul: v1
Folosim câteva steaguri suplimentare cu
Docker Run
Aici. În
-D.
pavilion face desprinderea Docker CLI din recipient, permițându-i să ruleze în fundal. Un port de cartografiere este definit cu
-p.
, Astfel încât portul 8080 pe gazda hărți la portul 80 în container. Ar trebui să vedeți pagina web dacă vizitați
localhost: 8080
în browser.
imagini Docker sunt formate din straturi. Fiecare instrucțiune din Dockerfile dvs. creează un strat nou. Puteți utiliza funcțiile avansate de construcție pentru referință imagini de bază multiple , Aruncând straturi intermediare din imagini anterioare.
Registrelor fotografie
Odată ce aveți o imagine, o puteți împinge într-un registru. Registrelor asigură o stocare centralizată astfel încât să puteți partaja containere cu alte persoane. Registrul implicit este Docker Hub .
Când executați o comandă care referințe imagine, verifică mai întâi Docker dacă este disponibil pe plan local. Dacă nu este, va încerca să-l trage de la Docker Hub. Puteți trage manual cu imagini
docher trage
comanda:
Docker trage httpd: cel mai recent
Dacă doriți să publicați o imagine, de a crea un
Docker Hub
cont. Alerga
conectare Docker
și introduceți numele de utilizator și parola.
Apoi, etichetați imaginea folosind numele de utilizator Docker Hub:
docher tag-ul meu de imagine: cel mai recent Docker-hub-utilizator / mea imagine: cele mai recente
Acum, puteți împinge imaginea:
docher împinge Docker-hub-utilizator / mea imagine: cele mai recente
Alți utilizatori nu vor fi capabili de a trage imaginea și pentru a începe containere cu ea.
Poti rula propriul registru dacă aveți nevoie de stocare privată a imaginii. Mai multe tipuri de servicii terță parte, de asemenea, oferă registre Docker ca alternative la Docker Hub.
Gestionarea containerele
Docker CLI are mai multe comenzi pentru a vă permite să gestionați containerele care rulează. Aici sunt unele dintre cele mai utile celor să știe:
listarea Containere
docher ps
vă arată toate containerele care rulează. Adăugarea
-A
pavilion va arăta containere oprit, de asemenea.
Oprirea și pornirea Containere
Pentru a opri un container, executați
docher opri mi-recipient
. A inlocui
mi-recipient
cu numele sau ID-ul containerului. Puteți obține aceste informații de la
ps.
comanda. Un container oprit este repornit cu
docher începe să-mi-recipient
.
Containere de obicei, rulează atât timp cât principalele lor sejururi de proces în viață.
politicile de repornire
controla ceea ce se întâmplă atunci când un container se întrerupe sau repornește gazdei. Trece
--restart întotdeauna
la
Docker Run
pentru a face o repornire container imediat după ce se oprește.
Obținerea unui Shell
Poti
executați o comandă în
un container folosind
docher Exec meu container meu de comandă
. Acest lucru este util atunci când doriți să manual un executabil invoke care este separat de procesul principal al containerului.
Adaugă
-aceasta
pavilion în cazul în care aveți nevoie de acces interactiv. Acest lucru vă permite să plasați într-o cochilie rulând
docher Exec -se meu container sh
.
Jurnale de monitorizare
Docker colectează în mod automat de ieșire emis la intrare și de ieșire fluxuri standard de un container. În
docher busteni-container
comandă va afișa jurnalele un container în interiorul terminalului. În
--urma
seturi de pavilion un flux continuu, astfel încât să puteți vizualiza jurnalele în timp real.
Resurse de curățare Up
containere și imagini vechi se pot aduna rapid pe sistemul dumneavoastră. Utilizare
docher rm mi-recipient
pentru a șterge un container prin ID-ul sau numele acestuia.
Comanda pentru imagini este
docher RMI mea imagine: cele mai recente
. Pass ID-ul sau numele complet tag-ul imaginii. Dacă specificați o etichetă, imaginea nu va fi ștearsă până când nu mai are etichete atribuite. În caz contrar, tag-ul dat va fi eliminat, dar ale imaginii alte etichete va rămâne utilizabilă.
Vrac curat-up-uri sunt posibile folosind
docher prună
comanda
. Acest lucru vă oferă o modalitate ușoară de a elimina toate containerele oprit și imaginile redundante.
Managementul grafic
În cazul în care terminalul nu este de lucru, puteți utiliza instrumente terță parte pentru a înființat o interfață grafică pentru Docker . tablouri de bord Web vă permit să monitorizeze rapid și de a gestiona instalarea. Ele ajuta, de asemenea, să preia controlul de la distanță a containerelor dumneavoastră.
Persistent de stocare a datelor
containere Docker sunt efemere în mod implicit. Modificările aduse unui container sistem de fișiere nu va persista și după ce containerul se oprește. Nu este sigur să
rula orice formă de sistem de stocare de fișiere
într-un recipient a început cu o bază
Docker Run
comanda.
Există câteva abordări diferite pentru gestionarea datelor persistente . Cea mai comună este de a utiliza un volum Docker. Volumele sunt unități de stocare care sunt montate în filesystems container. Orice date într-un volum va rămâne intactă după opriri legate de containere, permițându-vă să conectați un alt recipient în viitor.
menţinerea de securitate
volumul de lucru Dockerized poate fi mai sigur decât omologii lor metalice goale, ca Docker prevede o anumită separare între sistemul de operare și serviciile tale. Cu toate acestea, Docker este o potențială problemă de securitate, deoarece
în mod normal, se execută ca
rădăcină
și ar putea fi exploatate pentru a rula software-ul rău intenționat.
Dacă desfășurați doar Docker ca un instrument de dezvoltare, instalarea implicită este, în general, în condiții de siguranță pentru a utiliza. servere de producție și mașini cu o priză de rețea daemon expus-ar trebui să fie întărită înainte de a merge în direct.
Audit instalarea Docker pentru a identifica problemele potențiale de securitate. Sunt instrumente automate disponibile Acest lucru vă poate ajuta să găsiți puncte slabe și să sugerați rezoluții. Poti de asemenea Scanați imaginile individuale de containere pentru probleme care ar putea fi exploatate din interior.
Lucrul cu mai multe containere
În
docher
comanda funcționează numai cu un container la un moment dat. Veți dori adesea să utilizați recipientele în agregate.
Docker compune
Este un instrument care vă permite să definiți recipientele declarative într-un fișier YAML. Le puteți începe cu o singură comandă.
Acest lucru este util atunci când proiectul dvs. depinde de alte servicii, cum ar fi un backend web care se bazează pe un server de baze de date. Puteți defini ambele containere în dvs.
Docker-Compose.yml.
și beneficiază de gestionarea raționalizată cu
Rețele automate
.
Iată un simplu
Docker-Compose.yml.
fişier:
Versiune: "3"
Servicii:
Aplicație:
Imagine: App-server: Ultimele
Porturi:
- 8000: 80
Bază de date:
Imagine: Server de date: Ultimele
Volume:
- Date de bază de date: / date
Volume:
Datele bazei de date:
Aceasta definește două containere (
aplicație
și
Bază de date
). Un volum este creat pentru baza de date. Acest lucru este montat la
/date
în recipient. Portul de aplicații 80 este expus ca 8000 pe gazdă. Alerga
Docker-compune-o-d
pentru a roti ambele servicii, inclusiv rețeaua și volumul.
Utilizarea docker compune vă permite
Scrie reutilizabile
Definițiile containerelor pe care le puteți împărtăși cu alții. Ai putea să comite un a
Docker-Compose.yml.
în controlul versiunii dvs. în loc de a memora dezvoltatorii
Docker Run
comenzi.
Există și alte abordări pentru a executa mai multe recipiente. Docker App este o soluție emergentă care oferă un alt nivel de abstractizare. În altă parte a ecosistemului, Podman este o alternativă docker Acest lucru vă permite să creați "PODS" de containere în cadrul terminalului dvs.
Orchestrarea containerelor
Docker nu este în mod normal rulat în producție. Acum este mai frecvent să utilizați o platformă de orchestrație, cum ar fi Kuberntetes. sau modul Swarm Docker. Aceste instrumente sunt proiectate să se ocupe Replica de containere multiple, care îmbunătățește scalabilitatea și fiabilitatea.
Docker este o singură componentă în mișcarea mai largă a containerizării. Orchestratori
Utilizați același lucru
Container tehnologii de runtime pentru a oferi un mediu care este o potrivire mai bună pentru producție. Folosind mai multe instanțe container
Permite actualizările de rulare
Pe lângă distribuția între mașini, făcând implementarea mai rezistentă la schimbare și întrerupere. Regular
docher
CLI vizează o gazdă și funcționează cu containere individuale.
O platformă puternică pentru containere
Docker vă oferă tot ce aveți nevoie pentru a lucra cu containere. A devenit un instrument-cheie pentru dezvoltarea de software și administrarea sistemului. Principalele beneficii sunt o izolare sporită și portabilitate pentru serviciile individuale.
Obținerea cunoștințelor cu docker necesită o înțelegere a conceptelor de bază ale containerului și a imaginii. Puteți să le aplicați pentru a vă crea imaginile și mediile de specialitate care vă conțin volumul de lucru.