Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 9930|Odgovoriti: 2

Razlika med dockerfile in docker-compose

[Kopiraj povezavo]
Objavljeno na 15. 11. 2019 09:33:13 | | |
Razlika med dockerfile in docker-compose
Na kratko si poglejmo postopek uporabe dockerja, ki je razdeljen na gradnjo slik in zagon kontejnerja.

Konstrukcija slike: torej ustvariti sliko, ki vsebuje okolje, programsko kodo itd., potrebne za namestitev in delovanje. Ta proces ustvarjanja poteka z uporabo dockerfile.

Zagon kontejnerja: Kontejner se na koncu zažene tako, da se pridobi zgrajena slika in storitev se zažene skozi vrsto navodil (kot so preslikava vrat, zunanje nameščanje podatkov, okoljske spremenljivke itd.). Za en sam kontejner je mogoče to zagnati preko docker runa.

Če vključuje poganjanje več kontejnerjev (kot je orkestracija storitev), se lahko implementira z docker-compose, ki lahko enostavno poganja več kontejnerjev kot storitev (seveda samo enega) in zagotavlja funkcijo skaliranja storitev (skaliranje storitev).

Kratek povzetek:

1.dockerfile: zgradi sliko;

2. Docker run: zaženi kontejner;

3. docker-compose: Začni storitev;

Začni na začetku.
Če ne uporabljaš dockerja, kako potem zgradiš wordpress? Najprej najdi strežnik, predpostavi, da je njegov operacijski sistem Ubuntu, nato pa korak za korakom sledi dokumentaciji, da vtipkaš ukaz in napišeš konfiguracijo, kajne?
Kaj pa uporaba dockerja? Preprosto najdi strežnik, ne glede na operacijski sistem, dokler podpira docker, docker poganja Ubuntu, docker bo potegnil najnovejšo Ubuntu sliko iz uradne kode, lahko si predstavljaš, da odpreš Ubuntu virtualni stroj in ga nato postopoma namestiš, tako kot zgoraj.

Vendar pa ima ta namestitev pomembno pomanjkljivost: ko je kontejner izbrisan, ni opravljenega nobenega dela. Seveda lahko uporabiš docker commit, da ga shraniš kot sliko, da ga lahko ponovno uporabiš.

A slika je običajno velika, in če delite samo sliko, drugi ne bodo vedeli, kaj vaša slika vsebuje, kar ni primerno za deljenje in ponovno uporabo.
Intuitivna rešitev je, da napišete skripto, ki posname celoten postopek namestitve, tako da jo lahko ob ponovni namestitvi izvedete. Dockerfile je ena takih skript, ki dokumentira proces ustvarjanja slike.
Pri Dockerfile preprosto zaženi docker build. Lahko ustvarite sliko, Dockerfile pa je besedilna datoteka, ki jo je zelo enostavno spreminjati.

Zdaj, ko imaš WordPress sliko, moraš le še zagnati docker, da WordPress začne delovati.

Če gre samo za WordPress, je to dovolj. Pogosto pa je za začetek storitve potrebnih več slik, kot so nginx, mysql, poštna storitev itd.
Pogosteje so nginx, mysql in smtp vse slike, nato pa te slike skupaj služijo projektu.
Docker-Compose je rešitev za ta problem. Informacije o tem, katere slike vaš projekt potrebuje, kako konfigurirati vsako sliko, katere volumne namestiti in podobno, so vključene v docker-compose.yml.
Za začetek storitve moraš samo narediti docker-compose up, in samo docker-compse stop/down, da jo ustaviš

Na kratko, Dockerfile beleži proces izdelave ene same slike, docker-compse.yml beleži tudi proces gradnje projekta (običajno več slik).

Rekli ste, da nekateri vodiči uporabljajo dockerfile+docker-compose, ker sam docker-compose.yml nima informacij o sestavljanju slike, in če je slika pridobljena iz docker registra, potem dockerfile ni potreben; Če je treba sestaviti sliko, je treba zagotoviti Dockerfile.

docker-composeJe orkestracijski kontejner. Na primer, imate php sliko, mysql sliko in nginx sliko. Če ni docker-compose, morate vsakič, ko zaženete, vnesti zagonske parametre vsakega kontejnerja, okoljske spremenljivke, ime kontejnerja, določiti parametre povezav različnih kontejnerjev in niz operacij, kar je precej zapleteno. Po uporabi docker-composerja lahko te ukaze zapišete v docker-composer.yml datoteko naenkrat, in vsakič, ko zaženete celotno okolje (vključno s 3 kontejnerji), morate le vnesti ukaz docker-composer up.

dockerfileVloga je ustvariti zrcalno podobo iz nič. Vsebuje okolje, programsko kodo itd., potrebne za namestitev in delovanje. Ta proces ustvarjanja poteka z uporabo dockerfile. Dockerfile - Pripravljen za docker build ukaz za ustvarjanje samostojne slike, ki jo je mogoče uporabiti tudi v docker-compose za živo gradnjo
docker-compose.yml - Skripta za docker-compose, ki lahko upravlja več kontejnerjev hkrati, vključno z odnosi med njimi, ali gradiš z uradno sliko ali sam, različne definicije omrežnih portov, definicije prostora za shranjevanje itd




Prejšnji:Ni uspelo registrirati URL-ja "http://xx/" za spletno stran "IME STRANI"...
Naslednji:Docker shrani lokacijo slike pod sistemom Windows
 Najemodajalec| Objavljeno na 18. 12. 2022 14:56:50 |
Centos installation Docker Compose tutorial
https://www.itsvse.com/thread-5164-1-1.html
 Najemodajalec| Objavljeno na 5. 03. 2025 10:37:33 |
BuildKit je izboljšan backend, ki nadomešča legacy builder. Od različice 23.0 naprej je BuildKit privzeti graditelj za uporabnike na Docker Desktop in Docker Engine.

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.

Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com