Atšķirība starp dockerfile un docker-compose Īsumā sapratīsim docker lietošanas procesu, kas ir sadalīts attēlu veidošanā un konteineru startēšanā.
Attēla konstrukcija: tas ir, izveidojiet attēlu, kas satur instalēšanai un darbībai nepieciešamo vidi, programmas kodu utt. Šis izveides process tiek veikts, izmantojot dockerfile.
Konteinera startēšana: konteiners beidzot tiek palaists, izvelkot izveidoto attēlu un startējot pakalpojumu, izmantojot virkni palaišanas instrukciju (piemēram, portu kartēšana, ārējo datu montāža, vides mainīgie utt.). Vienam konteineram to var palaist, izmantojot docker run.
Ja tas ietver vairāku konteineru palaišanu (piemēram, pakalpojumu orķestri), to var īstenot, izmantojot docker-compose, kas var viegli palaist vairākus konteinerus kā pakalpojumu (protams, tikai vienu no tiem) un nodrošina mēroga funkciju (pakalpojumu mērogošana).
Īss kopsavilkums:
1.dockerfile: izveidojiet attēlu;
2. Docker Run: iedarbiniet konteineru;
3. docker-compose: sāciet pakalpojumu;
Sāciet no sākuma. Ja jūs neizmantojat docker, kā jūs veidojat wordpress? Vispirms atrodiet serveri, pieņemiet, ka tā operētājsistēma ir Ubuntu, un pēc tam soli pa solim izpildiet dokumentāciju, lai ierakstītu komandu un uzrakstītu konfigurāciju, vai ne? Kā ar docker izmantošanu? Vienkārši atrodiet serveri, neatkarīgi no operētājsistēmas, ja vien tas atbalsta docker, docker run ubuntu, docker izvilks jaunāko Ubuntu attēlu no oficiālā avota, jūs varat domāt par to, atverot Ubuntu virtuālo mašīnu, un pēc tam instalējiet to soli pa solim, tāpat kā iepriekš.
Tomēr šai instalācijai ir būtisks trūkums: tiklīdz konteiners ir izdzēsts, jums nav veikts nekāds darbs. Protams, jūs varat izmantot docker apņemšanos, lai to saglabātu kā attēlu, lai to varētu izmantot atkārtoti.
Bet attēls parasti ir liels, un, ja jūs tikai kopīgojat attēlu, citi nezinās, ko satur jūsu attēls, kas neveicina koplietošanu un atkārtotu izmantošanu. Intuitīvs risinājums ir rakstīt skriptu, lai ierakstītu visu instalēšanas procesu, lai, instalējot to vēlreiz, jūs varētu izpildīt skriptu. Dockerfile ir viens no šādiem skriptiem, kas dokumentē attēla veidošanas procesu. Izmantojot Dockerfile, vienkārši palaidiet docker build . Jūs varat izveidot attēlu, un Dockerfile ir teksta fails, kuru ir ļoti viegli modificēt.
Tagad, kad jums ir WordPress attēls, jums vienkārši jāpalaiž doks, lai WordPress sāktu darboties.
Ja tas ir tikai WordPress, ar to pietiek. Bet daudzas reizes, lai sāktu pakalpojumu, ir nepieciešami vairāki attēli, piemēram, nginx, mysql, pasta pakalpojums utt. Biežāk nginx, mysql un smtp ir visi attēli, un tad šie attēli darbojas kopā, lai kalpotu projektam. Docker-Compose ir šīs problēmas risinājums. Informācija par to, kādi attēli ir nepieciešami jūsu projektam, kā konfigurēt katru attēlu, kādus sējumus uzstādīt utt., ir iekļauta docker-compose.yml. Lai sāktu pakalpojumu, jums ir nepieciešams tikai docker-compose, un jums ir nepieciešams tikai docker-compse stop/down, lai to apturētu
Īsāk sakot, Dockerfile reģistrē viena attēla būvniecības procesu, docker-compse.yml tas reģistrē projekta būvniecības procesu (parasti vairāki attēli).
Jūs teicāt, ka dažās apmācībās tiek izmantots dockerfile + docker-compose, jo docker-compose.yml pašam nav informācijas par attēla veidošanu, un, ja attēls tiek izvilkts no docker reģistra, tad dockerfile nav nepieciešams; Ja attēls ir jāveido, tad ir jānodrošina Dockerfile.
docker-composeTas ir orķestra konteiners. Piemēram, jums ir php attēls, mysql attēls un nginx attēls. Ja nav docker-compose, tad katru reizi, kad startējat, jums jāievada katra konteinera startēšanas parametri, vides mainīgie, konteinera nosaukums, jānorāda dažādu konteineru saites parametri un virkne operāciju, kas ir diezgan apgrūtinoša. Pēc docker-composer izmantošanas varat rakstīt šīs komandas failā uzreiz, docker-composer.yml katru reizi, kad startējat visu vidi (ieskaitot 3 konteinerus), jums ir jāieraksta tikai docker-composer up komanda.
dockerfileUzdevums ir izveidot spoguļattēlu no nulles. Tajā ir vide, programmas kods utt., kas nepieciešama instalēšanai un darbībai. Šis izveides process tiek veikts, izmantojot dockerfile. Dockerfile - sagatavots docker būvēšanas komandai, lai izveidotu atsevišķu attēlu, ko var izmantot arī docker-compose tiešraides veidošanai docker-compose.yml - skripts docker-compose, kas vienlaikus var pārvaldīt vairākus konteinerus, ieskaitot attiecības starp tiem, neatkarīgi no tā, vai veidot ar oficiālu attēlu vai sevi, dažādas tīkla portu definīcijas, krātuves vietas definīcijas utt |