Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 9930|Răspunde: 2

Diferența dintre dockerfile și docker-compose

[Copiază linkul]
Postat pe 15.11.2019 09:33:13 | | |
Diferența dintre dockerfile și docker-compose
Să înțelegem pe scurt procesul de utilizare al docker, care este împărțit în construirea imaginii și pornirea containerului.

Construcția imaginii: adică, crearea unei imagini care să conțină mediul, codul programului etc. necesar pentru instalare și funcționare. Acest proces de creare se realizează folosind un fișier docker.

Pornirea containerului: Containerul este în cele din urmă rulat prin extragerea imaginii construite și pornirea serviciului printr-o serie de instrucțiuni de rulare (cum ar fi maparea porturilor, montarea datelor externe, variabile de mediu etc.). Pentru un singur container, aceasta poate fi rulată prin docker run.

Dacă implică rularea mai multor containere (cum ar fi orchestrarea serviciilor), poate fi implementată prin docker-compose, care poate rula cu ușurință mai multe containere ca serviciu (desigur, doar unul dintre ele) și oferă funcția de scalare (scalarea serviciilor).

Scurt rezumat:

1.dockerfile: construiește imaginea;

2. rulare docker: pornirea containerului;

3. docker-compose: Pornește serviciul;

Începe de la început.
Dacă nu folosești docker, cum construiești wordpress? Găsește mai întâi un server, presupune că sistemul său de operare este Ubuntu și apoi urmează documentația pas cu pas pentru a scrie comanda și a scrie configurația, nu?
Ce zici de folosirea docker? Doar găsește un server, indiferent de sistem de operare, atâta timp cât suportă docker, docker rulează Ubuntu, docker va prelua cea mai recentă imagine Ubuntu din sursa oficială, poți să te gândești la asta ca și cum ai deschis o mașină virtuală Ubuntu și apoi să o instalezi pas cu pas, exact ca mai sus.

Totuși, această instalare are un dezavantaj semnificativ: odată ce containerul este șters, nu se face nicio muncă. Desigur, poți folosi docker commit pentru a o salva ca imagine, astfel încât să poată fi reutilizată.

Dar imaginea este în general mare, iar dacă distribui doar imaginea, ceilalți nu vor ști ce conține imaginea ta, ceea ce nu este favorabil pentru partajare și reutilizare.
O soluție intuitivă este să scrii un script care să înregistreze întregul proces de instalare, astfel încât atunci când îl instalezi din nou, să poți executa scriptul. Un Dockerfile este un astfel de script care documentează procesul de creare a unei imagini.
Cu un Dockerfile, pur și simplu rulează build-ul docker. Poți crea o imagine, iar fișierul Dockerfile este un fișier text, care este foarte ușor de modificat.

Acum că ai o imagine WordPress, trebuie doar să rulezi docker pentru a porni WordPress.

Dacă este doar WordPress, este suficient. Dar de multe ori, sunt necesare mai multe imagini pentru a porni un serviciu, cum ar fi nginx, mysql, mail service etc.
Mai frecvent, nginx, mysql și smtp sunt toate imagini, iar aceste imagini lucrează împreună pentru a servi un proiect.
Docker-compose este soluția la această problemă. Informații despre ce imagini are nevoie proiectul tău, cum să configurezi fiecare imagine, ce volume să montezi și așa mai departe sunt incluse în docker-compose.yml.
Pentru a începe un serviciu, trebuie doar să comporți docker-compose și să faci dockercompse stop/down pentru a-l opri

Pe scurt, un Dockerfile înregistrează procesul de construcție al unei singure imagini docker-compse.yml înregistrează procesul de construcție al unui proiect (de obicei mai multe imagini).

Ai spus că unele tutoriale folosesc dockerfile+docker-compose pentru că docker-compose.yml însăși nu are informații despre build-ul imaginii, iar dacă imaginea este extrasă din registrul docker, atunci dockerfile-ul nu este necesar; Dacă imaginea trebuie construită, atunci trebuie furnizat un fișier Docker.

docker-composeEste un container de orchestrare. De exemplu, ai o imagine php, o imagine mysql și o imagine nginx. Dacă nu există docker-compose, atunci de fiecare dată când pornești, trebuie să tastezi parametrii de pornire ai fiecărui container, variabilele de mediu, numele containerului, să specifici parametrii legăturii diferitelor containere și o serie de operații, ceea ce este destul de greoi. După ce folosești docker-composer, poți scrie aceste comenzi într-docker-composer.yml fișier simultan, iar de fiecare dată când pornești întregul mediu (inclusiv 3 containere), trebuie doar să tastezi o comandă docker-composer up.

dockerfileRolul este să construiești o imagine în oglindă de la zero. Acesta conține mediul, codul programului etc. necesar pentru instalare și funcționare. Acest proces de creare se realizează folosind un fișier docker. Dockerfile - Pregătit pentru comanda docker build de a crea o imagine independentă, care poate fi folosită și în docker-compose pentru build live
docker-compose.yml - Un script pentru docker-compose care poate gestiona mai multe containere simultan, inclusiv relațiile dintre ele, fie pentru a construi cu o imagine oficială sau cu tine, diverse definiții ale porturilor de rețea, definiții ale spațiului de stocare etc




Precedent:Nu s-a înregistrat URL-ul "http://xx/" pentru site-ul "SITE NAME"...
Următor:Docker stochează locația imaginii în sistemul Windows
 Proprietarul| Postat pe 18.12.2022 14:56:50 |
Instalare centos Tutorial Docker Compose
https://www.itsvse.com/thread-5164-1-1.html
 Proprietarul| Postat pe 05.03.2025 10:37:33 |
BuildKit este un backend îmbunătățit care înlocuiește constructorul de legacy. Începând cu versiunea 23.0, BuildKit este constructorul implicit pentru utilizatorii de pe Docker Desktop și Docker Engine.

Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.

Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com