Rozdiel medzi dockerfile a docker-compose Stručne si prizrime proces používania dockeru, ktorý je rozdelený na tvorbu obrázkov a štartovanie kontajnera.
Konštrukcia obrazu: teda vytvoriť obraz, ktorý obsahuje prostredie, programový kód a podobne potrebné na inštaláciu a prevádzku. Tento proces vytvárania prebieha pomocou dockerfile.
Spustenie kontajnera: Kontajner sa nakoniec spustí stiahnutím vytvoreného obrazu a spustením služby prostredníctvom série bežiacich inštrukcií (ako mapovanie portov, externé pripojenie dát, environmentálne premenné atď.). Pre jeden kontajner to môže byť spustené cez docker run.
Ak zahŕňa spúšťanie viacerých kontajnerov (napríklad orchestrácia služieb), môže byť implementovaná pomocou docker-compose, ktorý ľahko spustí viacero kontajnerov ako službu (samozrejme len jeden z nich) a poskytuje funkciu škálovania (škálovanie služieb).
Stručné zhrnutie:
1.dockerfile: vytvoriť obraz;
2. docker run: spustenie kontajnera;
3. docker-compose: Začnite službu;
Začni od začiatku. Ak nepoužívate docker, ako sa postaví wordpress? Najprv nájdi server, predpokladaj, že jeho operačný systém je Ubuntu, a potom krok za krokom nasleduj dokumentáciu, aby si napísal príkaz a napísal konfiguráciu, však? A čo použitie dockeru? Stačí si nájsť server, nech už je operačný systém akýkoľvek, pokiaľ podporuje Docker, docker spustí Ubuntu, docker stiahne najnovší Ubuntu obraz z oficiálneho zdroja, môžeš si to predstaviť ako otvorenie Ubuntu virtuálneho stroja a potom ho inštalovať krok za krokom, presne ako vyššie.
Táto inštalácia však má významnú nevýhodu: akonáhle je kontajner vymazaný, už sa na ňom nič nerobí. Samozrejme, môžete použiť docker commit na uloženie ako obraz, aby sa dal znovu použiť.
Ale obrázok je zvyčajne veľký a ak zdieľate len obrázok, ostatní nebudú vedieť, čo váš obrázok obsahuje, čo nie je vhodné na zdieľanie a opätovné použitie. Intuitívnym riešením je napísať skript, ktorý zaznamená celý inštalačný proces, aby ste ho pri opätovnej inštalácii mohli spustiť. Dockerfile je jeden z takýchto skriptov, ktoré dokumentujú proces vytvárania obrazu. S Dockerfile stačí spustiť docker build. Môžete vytvoriť obrázok a Dockerfile je textový súbor, ktorý je veľmi jednoduché upraviť.
Teraz, keď máš WordPress obrázok, stačí spustiť docker run, aby WordPress fungoval.
Ak je to len WordPress, to stačí. Často je však na spustenie služby potrebných viacero obrázkov, napríklad nginx, mysql, mail service a podobne. Častejšie sú nginx, mysql a smtp všetky obrázky, ktoré potom spolupracujú na projekte. Docker-Compose je riešením tohto problému. V docker-compose.yml sú zahrnuté informácie o tom, ktoré obrázky váš projekt potrebuje, ako nastaviť každý obrázok, ktoré objemy pripevniť a podobne. Na spustenie služby stačí docker-compose up, a stačí docker-compse stop/down, aby ste ju zastavili
Stručne povedané, Dockerfile zaznamenáva proces konštrukcie jedného obrazu docker-compse.yml zaznamenáva proces výstavby projektu (zvyčajne viacero obrázkov).
Povedali ste, že niektoré tutoriály používajú dockerfile+docker-compose, pretože docker-compose.yml samotný neobsahuje informácie o zostavení obrázka, a ak sa obrázok stiahne z docker registru, potom dockerfile nie je potrebný; Ak je potrebné vytvoriť obrázok, musí byť poskytnutý Dockerfile.
docker-composeJe to nádoba na orchestráciu. Napríklad máte php obrázok, mysql a nginx obrázok. Ak neexistuje docker-compose, pri každom spustení musíte zadať štartovacie parametre každého kontajnera, environmentálne premenné, názov kontajnera, špecifikovať parametre linku rôznych kontajnerov a sériu operácií, čo je dosť zdĺhavé. Po použití docker-composer môžete tieto príkazy zapísať do docker-composer.yml súboru naraz a zakaždým, keď spustíte celé prostredie (vrátane 3 kontajnerov), stačí zadať príkaz docker-composer up.
dockerfileÚlohou je vytvoriť zrkadlový obraz od nuly. Obsahuje prostredie, programový kód a podobne potrebné na inštaláciu a prevádzku. Tento proces vytvárania prebieha pomocou dockerfile. Dockerfile - Pripravený na docker build príkaz na vytvorenie samostatného obrázka, ktorý je možné použiť aj v docker-compose pre živú zostavu docker-compose.yml - Skript pre docker-compose, ktorý dokáže spravovať viacero kontajnerov súčasne, vrátane vzťahov medzi nimi, či už na vytvorenie s oficiálnym obrázkom alebo so sebou, rôzne definície sieťových portov, definície úložného priestoru a podobne |