- I-Docker Compose ikuvumela ukuthi uchaze futhi uphathe izitsha eziningi kusuka kufayela elilodwa le-YAML, okwenza kube lula ukusebenza nezinhlelo zokusebenza ezisuselwe kuma-microservices.
- Isigaba sezinsizakalo siyimpoqo futhi sigcwaliswe ngamanethiwekhi, amavolumu, izilungiselelo kanye nezimfihlo zokulawula ukuxhumana, ukuphikelela kanye nokucushwa.
- Izibonelo ezifana ne-Flask+Redis noma uhlelo lokusebenza olugcwele i-stack olune-frontend, i-backend kanye ne-database zibonisa ukuthi i-Compose yenza kanjani kube lula ukuthuthukiswa kanye nokusetshenziswa.
- I-Los imiyalo i-docker ibhala phezulu, phansi, i-ps kanye izingodo Zakha umsebenzi oyisisekelo wokuphakamisa, ukulungisa amaphutha, nokumisa izinqwaba zeziqukathi.

Uma usuvele uzame ngeziqukathi futhi wakubona lokho ngohlelo lokusebenza "lwangempela" oludingayo isevisi engaphezu kweyodwa esebenza ngesikhathi esisodwa (isizindalwazi, i-API, i-frontend, i-cache…), ngokushesha uzohlangana ne-Docker Compose. Leli thuluzi likuvumela ukuthi usethe yonke leyo mishini ngefayela elilodwa kanye nemiyalo embalwa, ngaphandle kokuhlanganisa ama-terminals kanye nezikripthi ezingapheli.
Kulesi sifundo uzofunda ukuthi iyini i-Docker Compose, ukuthi ifayela layo lisebenza kanjani compose.yaml kanye nendlela yokuhlela izinhlelo zokusebenza Hlanza ukusethwa kweziqukathi eziningi: kusukela ezibonelweni ezilula nge-Flask ne-Redis kuya kuzakhiwo eziyinkimbinkimbi kakhulu ezine-frontend, i-backend, kanye nedathabheyisi. Uzofunda futhi ngenethiwekhi, amavolumu, ukucushwa, izimfihlo, kanye nemiyalo eyisihluthulelo yokusebenza ngokunethezeka ekuthuthukisweni nasezindaweni ezidinga kakhulu.
Kuyini i-Docker Compose futhi kungani kufanelekile ukuyisebenzisa?
I-Docker Compose isandiso se-Docker esivumela chaza futhi uphathe izitsha eziningi njengokungathi ziyisicelo esisodwa. Esikhundleni sokuqala isevisi ngayinye ngesandla nge-"docker run" yayo kanye namapharamitha, uchaza konke kufayela le-YAML bese uqala ngomyalo owodwa.
Ubuhle be-Compose ukuthi izinhlelo zokusebenza eziningi zesimanje zakhiwe phezu kwayo. ama-microservices ahlala ezitsheni ngazinyeIsizindalwazi, i-API, i-frontend, uhlelo lokufaka umugqa, i-cache efana ne-Redis, njll. I-Docker itusa ukuthi isitsha ngasinye sisebenzise isevisi eyodwa, ngakho uma uzama ukufaka yonke into esithombeni esisodwa, ugcina unesilwane okunzima ukusikhulisa nokusinakekela.
Ungaqhuba izinsizakalo ezimbili noma ngaphezulu ngaphakathi kwesitsha esifanayo, kodwa Lokho kususa izinzuzo eziningi zeDocker.Uma eyodwa yehluleka, idonsela ezinye phansi; awukwazi ukukhulisa kuphela ingxenye ethola umthwalo omningi, futhi ukuphatha izingodo, izinsiza, kanye nokwehluleka kuba inkinga enkulu.
Nge-Docker Compose uchaza isevisi ngayinye ngokwehlukana, ucacisa ukuthi ixhumana kanjani, ukuthi iqhubeka kanjani, ukuthi imaphi amachweba ayivezayo, nokuthi iziphi iziguquguquko zemvelo ezizisebenzisayo… Ngale ndlela Uma isitsha esisodwa sihluleka, okusele kungaqhubeka nokusebenza. kuye ngokuthi uyilungiselela kanjani, futhi ukukala ingxenye ethile kulula njengokushintsha izilungiselelo zayo noma inani lamakhophi.
Ngaphezu kwalokho, i-Compose ifanelana kahle nemisebenzi yokusebenza ye I-CI/CD kanye nokuthunyelwa ekukhiqizweniUngayisebenzisa ngqo ngamathuluzi afana ne-Portainer noma i-Docker Swarm, futhi uma usebenza ne-Kubernetes, amaphrojekthi afana ne-Kompose akuvumela ukuthi uhumushe ifayela le-composite.yaml libe yi-Kubernetes manifests ngaphandle kokubhala kabusha konke ngesandla.
Izimfuneko zokulandela isifundo se-Docker Compose
Ukuze ulandele kahle izibonelo ezikulesi sifundo udinga kufakwe i-Docker kanye ne-Docker ComposeNamuhla kunezindlela ezimbili eziyinhloko:
- Injini ye-Docker + Ukuqamba i-Docker kufakwe njenge-binary ezimele.
- Ideskithophu yeDocker, okuhlanganisa i-Docker Engine, i-Docker Compose, kanye ne-graphical interface.
Kubalulekile ukuthi ube nesisekelo esincane se imiyalo eyisisekelo ye-Docker (izithombe, izitsha, amachweba, amavolumu) futhi ungesabi ukusebenzisa umugqa womyalo. Izibonelo zivame ukucatshangelwa ku Linux (isibonelo Ubuntu 22.04), kodwa i-logic isebenza ngokulinganayo ku Windows kanye ne-macOS ene-Docker Desktop.
Hlola ukuthi konke kuhlelekile ngokukusebenzisa ku- Isikhumulo into elula njengokuthi "inguqulo ye-docker" kanye "nenguqulo yokubhala ye-docker"Uma yomibili imiyalo iphendula ngaphandle kwephutha, usukulungele ukuqhubeka nezibonelo.
Isakhiwo esiyisisekelo sefayela le-compose.yaml
Inhliziyo ye-Docker Compose yifayela compose.yaml (noma i-docker-compose.yml)Lapho sichaza ukuthi yiziphi izinsizakalo esifuna ukuzisungula nokuthi kufanele zihlobane kanjani. Nakuba ngaphambili le nsimu yayisetshenziswa version Ukuze kuphawulwe inguqulo yefomethi, amadokhumenti amanje atusa ukuthi angachazwa ukuze kusetshenziswe inguqulo yakamuva kakhulu yeschema njalo.
Ngaphakathi kwefayela lokubhala uzoba nezingxenye eziningana ezingaba khona, yize eyodwa kuphela ephoqelekile: amasevisiUkusuka lapho ungangeza ezinye izigaba kuye ngokuthi iphrojekthi yakho iyinkimbinkimbi kangakanani:
- amasevisi: incazelo yesevisi encane ngayinye (okuphoqelekile).
- amanethiwekhi: amanethiwekhi enziwe ngokwezifiso ukulawula ukuxhumana phakathi kweziqukathi.
- imiqulu: amavolumu okugcina idatha noma ukwabelana ngayo phakathi kwezinsizakalo.
- okulungiselelwe: ukucushwa kwesevisi (isb., amafayela okucushwa kweseva yewebhu).
- izimfihlo: ukuphathwa kolwazi olubucayi (amaphasiwedi, okhiye be-API…).
Kuyo yonke le tutorial uzobona ukuthi ungazihlanganisa kanjani zonke lezi zigaba zephrojekthi ejwayelekile efaka phakathi uhlelo lokusebenza, isizindalwazi, kanye ne-APIkanye nesibonelo sohlelo lokusebenza lwewebhu ku- Python ngeFlask kanye neRedis.
Izinsizakalo ku-Docker Compose: umongo wencazelo
Isigaba izinsizakalo ziyinto ebalulekile kusuka kunoma yiliphi ifayela Lokubhala. Kuyo uchaza isitsha ngasinye esizokwenza uhlelo lwakho lokusebenza, uzinike igama olifunayo (isibonelo, web, database, api, redis, Njll).
Ngensizakalo ngayinye ungasungula inani elihle nemingcelePhakathi kwazo kukhona ezinye ezisetshenziswa kabanzi kumaphrojekthi angokoqobo:
Ipharamitha build ikhombisa ukuthi i-Dockerfile itholakala kuphi lapho kuzokwakhiwa khona isithombe sesevisi. Ngokuvamile, umongo (uhla lwemibhalo) uchazwa lapho kuhlala khona i-Dockerfile yohlelo lokusebenza ofuna ukulipakisha.
Uma usuvele unesithombe esidaliwe noma ufuna ukusebenzisa esisodwa esivela kurejista, usebenzisa image ukuze ngibhekisele kukhoIgama lilandela ifomethi [<registry>/][<project>/]<image>[:<tag>|@<digest>]Futhi uma udinga ukulawula ukuthi leso sithombe silandwa noma sibuyekezwa nini, ungasebenzisa pull_policy.
Insimu ports Isetshenziselwa ukumaka amachweba phakathi kwe-host kanye nesitshaI-syntax iwuhlobo [HOST:]CONTAINER[/PROTOCOL]Isibonelo, uma i-database ye-PostgreSQL ilalele echwebeni 5432 ngaphakathi kwesitsha futhi ufuna ukuyiveza echwebeni 5555 lomsingathi, ungenza into efana nale: "5555:5432" ohlwini lwamachweba.
Inqubomgomo yokuqalisa kabusha ilawulwa nge restartokubonisa ukuthi yini okufanele uyenze lapho isitsha siphela ngephutha noma sima. Amanani ajwayelekile yilawa no, always, on-failure y unless-stoppedukuvumela izinsizakalo ezibalulekile ukuthi ziqhubeke nokusebenza noma ngabe zihlangabezana nokuphazamiseka ngezikhathi ezithile.
Uma isevisi eyodwa idinga ukuthi enye itholakale ngaphambi kokuba iqale, ungasebenzisa depends_on ukuchaza ukuncika phakathi kweziqukathiIsibonelo esivamile uhlelo lokusebenza oludinga ukuthi isizindalwazi sisebenze ukuze kugwenywe ukwehluleka kokuxhumeka kokuqala.
Ngokucushwa kanye neziqinisekiso, unezindlela ezimbili ezivamile: env_file y environment. Nge env_file Ukhomba ifayela elilodwa noma ngaphezulu .env neziguquguquko zemvelo, ngenkathi environment Ungazifaka ohlwini ngqo ku-YAML. Umkhuba omuhle ukusebenzisa amafayela. .env ukuvimbela amaphasiwedi kanye nedatha ebucayi ukuthi ingafakwa kufayela le-composite.yaml uqobo.
Ipharamitha volumes ivumela ukufaka izindlela zokusingatha noma amavolumu Ngaphakathi kwesitsha, uzosebenzisa kokubili ukuphikelela kwedatha kanye nokwabelana ngamafolda phakathi kwezinsizakalo. Lapha, uzobhekisela kuphela kumanani ongawachaza kamuva esigabeni esingenhla. volumes uma udinga ukuthi zabelwane noma ziphathwe ngendlela ecacile.
Ngalezi zinsimu usuvele ungakha izinsizakalo eziphelele. Imininingwane Yokubhala ifaka phakathi izinketho eziningi ezithuthukisiwe (impilo, imikhawulo yezinsizakusebenza, imiyalo ye ibhuthininjll.), kodwa ngalezi usuvele uhlanganisa ukusetshenziswa okuvamile.
Isibonelo 1: Uhlelo lokusebenza lwewebhu ku-Python olune-Flask kanye ne-Redis
Isibonelo esijwayelekile sokuqonda i-Docker Compose ukudala i- uhlelo lokusebenza lwewebhu olulula ku-PythonUkusebenzisa i-Flask ukukhonza amakhasi kanye ne-Redis njengesitolo sememori se-hit counter. Umqondo uwukuthi awudingi ukufaka i-Python noma i-Redis emshinini wakho: konke kusebenza ngaphakathi kweziqukathi.
Ukuhamba komsebenzi kungaba into efana nale: okokuqala udala isiqondisi sephrojekthi bese ngaphakathi ufaka ifayela app.py ngekhodi yeFlask. Kuleyo khodi oyisebenzisayo "redis" njengegama lomphathi kanye nembobo 6379, okuyi-port ezenzakalelayo yesevisi ye-Redis esitsheni sakho.
Umsebenzi ophatha ikhawunta yezivakashi Izama ukuxhumana neRedis izikhathi eziningana. Ngaphambi kokuyeka, khumbula ukuthi isitsha seRedis singathatha imizuzwana embalwa ukuthi sitholakale uma uphakamisa yonke inqwaba.
Ngaphezu kwalokho app.py, udala ifayela requirements.txt ngokuxhomekeka kwePython (isibonelo i-Flask kanye ne-redis-py), kanye ne-Dockerfile echaza indlela yokwakha isithombe sakho sohlelo lokusebenza lwewebhu: isithombe se-base Python (3.7, 3.10 noma yini), isiqondisi esisebenzayo, iziguquguquko zemvelo ze-Flask, ukufakwa kwe-gcc kanye nokuncika kwesistimu, ikhophi ye-requirements.txt, ukufakwa kwephakheji kanye nekhophi yekhodi.
Kufayela le-Docker uphinde uphawule i- ichweba elizobonisa isitsha (isibonelo 5000) bese uchaza umyalo ozenzakalelayo, ngokuvamile flask run --debug noma okufanayo, ukuze kuqale ngokuzenzakalelayo lapho isitsha sidalwa.
Njengoba konke lokhu sekulungile, ifayela le-composite.yaml lichaza izinsizakalo ezimbili: eyodwa ebizwa, isibonelo, web, eyakhiwe kusukela ku-Dockerfile yephrojekthi futhi iveza i-port 8000 ngaphandle (imephu ye-port 8000 yomsingathi ne-port 5000 yesitsha), kanye nenye ebizwa ngokuthi redis lokho Donsa isithombe esisemthethweni seRedis kusuka ku-Docker Hub.
Ukuze uqalise uhlelo lokusebenza, mane nje uye kufolda yephrojekthi bese uqalisa "ukubhala kabusha i-docker"I-Compose inakekela ukulanda isithombe se-Redis, ukwakha isithombe sohlelo lwakho lokusebenza lwewebhu, nokuqala zombili izinsizakalo ngokulandelana okufanele.
Uma isiqalile ukusebenza, ungena nesiphequluli sakho ku- http://localhost:8000 (o http://127.0.0.1:8000) futhi kufanele ubone umlayezo wohlobo oluthi "Sawubona Mhlaba" kanye Ikhawunta yezivakashi eyanda njalo uma ulayisha kabusha ikhasi. Uma uhlola izithombe zendawo nge docker image lsUzobona into efana redis y web kudalwe noma kulandiwe.
Uma ufuna ukuyeka konke, ungakwenza I-CTRL+C ku-terminal lapho ushiye khona i-"docker compose up" noma sebenzisa docker compose down kusuka kufolda yephrojekthi. Lokhu kuzomisa futhi kususe iziqukathi ezidalwe yilowo mbhalo.
Ukuthuthukisa ukuhamba komsebenzi: Ukubopha izikhonkwane kanye nokubuka kokubhala
Ukusebenza ekuthuthukisweni nge-Docker kulula kakhulu uma Akudingeki ukuthi wakhe kabusha isithombe njalo uma uthinta ikhodi. Yilapho i-Bind Mounts kanye, ezinguqulweni zakamuva, i-Docker Compose Watch iqala khona ukusebenza.
I-Bind Mount ihilela ukufaka ifolda kusuka emshinini wakho ngaphakathi kwesitsha. Kufayela le-compose.yaml, ungeza isigaba kusevisi yewebhu. volumes ehlanganisa isiqondisi sephrojekthi nesiqondisi esisebenzayo kusuka esitsheni, isibonelo .:/codeNgale ndlela, noma yiziphi izinguquko ozenzayo kumhleli wakho zibonakala ngokushesha ngaphakathi kwesitsha.
Uma futhi usebenzisa imodi yokulungisa iphutha likaFlask nge-variable FLASK_DEBUG=1, umyalo flask run Izolayisha kabusha ngokuzenzakalelayo uhlelo lokusebenza uma ithola izinguquko kumafayela, ngaphandle kwesidingo sokuma bese iqala kabusha.
I-Docker Compose Watch ithatha isinyathelo esengeziwe: ungasebenzisa “iwashi lokubhala i-docker” noma “iwashi lokubhala i-docker –watch” Lokhu kuvumela i-Compose ukuthi iqaphe amafayela ephrojekthi futhi ivumelanise izinguquko neziqukathi ngokuhlakanipha kakhudlwana. Uma ulondoloza ifayela, likopishwa esitsheni, futhi iseva yokuthuthukisa ibuyekeza uhlelo lokusebenza ngaphandle kokuqala kabusha sonke isitsha.
Zama, isibonelo, ukushintsha umlayezo wokwamukela ku app.py kusukela ku-"Sawubona Mhlaba!" kuya esisho esifana nalesi "Sawubona kusuka ku-Docker"Londoloza ifayela, uvuselele isiphequluli sakho, futhi uzobona umlayezo omusha ngokushesha ngenkathi ikhawunta yokuvakasha iqhubeka isebenza ngaphandle kokulahlekelwa yisimo sayo.
Futhi uma usuqedile ukusebenza, njengenjwayelo, ungadonsa docker compose down ukuze vala futhi uhlanze izitsha okwakuqhubeka naleyo nqwaba.
Isibonelo 2: Uhlelo lokusebenza lwe-stack oluphelele olune-frontend, i-backend kanye ne-database
Ukuze ubone i-Docker Compose ngendlela yokwakha engokoqobo, cabanga nge- uhlelo lokusebenza lohlu lwezinto okufanele zenziwe (Uhlu lwezinto okufanele zenziwe) ene-frontend ku-Vue.js, i-API ku-Node.js, kanye nedathabheyisi ye-MongoDB. Ingxenye ngayinye ihlala kufolda yayo futhi inefayela layo le-Docker.
Endaweni yokugcina izinto ungathola ifolda frontend ngohlelo lokusebenza lwe-Vue kanye nolunye backend ngeseva ye-Node. I-backend iveza ama-endpoints e- dala, faka ohlwini, buyekeza futhi ususe imisebenzifuthi ixhuma ku-MongoDB ukuze iwagcine. I-frontend isebenzisa lawa ma-endpoints ukuze ibonise futhi iphathe uhlu lwemisebenzi kusiphequluli.
Ifayela docker-compose.yml Itholakala ekuqaleni kwephrojekthi futhi ichaza izinsizakalo ezintathu: frontend, backend y databaseInsizakalo ye-frontend yakhiwe kusuka ku-Dockerfile kufolda ehambisanayo, ngokuvamile iveza i-port yangaphakathi engu-80 bese iyimaka ku-port engu-5173 ye-host (isibonelo, ukusebenzisa i-URL efanayo naleyo ekuthuthukisweni kwendawo).
I-backend yakhiwe kusukela ku-Dockerfile kufolda backend, iveza imbobo engu-3000 (ngaphakathi nangaphandle kwesitsha, uma ufuna ukwenza kube lula) kanye imemezela ukuthembela kusizindalwazi ukuqinisekisa ukuthi i-MongoDB iyatholakala uma iqala.
Isevisi database sebenzisa ngqo Isithombe esisemthethweni se-MongoDB futhi wakhe ivolumu, ake sithi mongodb_datae /data/db, lapho iMongo igcina khona idatha yayo. Lelo volumu limenyezelwe esigabeni esiphezulu. volumes kusuka ku-compose, ukuze idatha iqhubeke noma ngabe ususa futhi udala kabusha izitsha.
Ekugcineni, zonke lezi zinsizakalo zixhuma ngenethiwekhi eyenziwe ngokwezifiso, isibonelo my-network, kuchazwe esigabeni networksLokhu kuvumela ukuthi zixazululwe ngegama lesevisi (i-backend ingaxhuma ku-Mongo isebenzisa igama le-hostname). database) nokuthi ithrafikhi ivikelwe kuleyo nethiwekhi ehlukanisiwe.
Uma ukucushwa sekulungile, sebenzisa docker compose up Enhliziyweni yephrojekthi, inesibopho sokwenza yakha noma ulande izithombe bese uqalisa izitsha ezintathuUngahlola ukuthi konke kusendaweni efanele nge docker compose ps, bese ufinyelela http://localhost:5173 ukuze ubuke uhlelo lokusebenza lwe-Vue kusiphequluli sakho bese udala imisebenzi yakho yokuqala.
Ukuxhumana ku-Docker Compose: ukuxhumanisa izinsizakalo komunye nomunye
Amanethiwekhi ayingqimba evumela izitsha zakho "Bayabonana" futhi bakhuluma ngendlela elawulwayoNgokuzenzakalelayo, i-Docker isivele idala amanethiwekhi e-Compose, kodwa ukuwachaza ngokusobala kukunikeza ukucaca okwengeziwe kanye nokulawula ukuthi yini engaxhumana nalokho.
Isebenza kalula: isevisi ngayinye ifaka insimu networks lapho ubonisa khona ukuthi kungokwamaphi amanethiwekhi, bese ubonisa esigabeni esiphezulu networks Uchaza lawo manethiwekhi ngokucushwa kwawo. Indlela evame kakhulu (futhi enconywayo ezimweni eziningi) ukusebenzisa idrayivu. bridge.
Inethiwekhi yebhuloho idala indawo yangasese inethiwekhi yeziqukathi zakhongesisombululo se-DNS esizenzakalelayo ngokusekelwe egameni lesevisi. Lokho kusho ukuthi, isibonelo, uma isevisi yakho yedathabheyisi ibizwa databaseNoma iyiphi enye isevisi kunethiwekhi efanayo ingaxhuma ngokusebenzisa nje database njengegama lomethuleli.
Kuphrojekthi ene-frontend, i-backend, kanye ne-database, ungase unqume, isibonelo, ukudala inethiwekhi ye-frontend kanye nenethiwekhi ye-backend. I-frontend izoxhuma ku-backend, kanye ne-backend ku-database, kodwa i-frontend kanye ne-database... Ngeke kudingeke ukuthi babelane ngenethiwekhiukunciphisa indawo engaphandle eveziwe ngaphakathi.
Kukhodi, lokhu kuhunyushwa ngokuthile okulula njengokwabela inethiwekhi ehambisanayo kusevisi ngayinye, bese uchaza lawo manethiwekhi ngamabhuloho okushayela. Ezingeni lesicelo, indlela elula ukusebenzisa igama lesevisi njengomphathi lapho ulungiselela ukuxhumana: kwe app a databaseIsibonelo, ngokumane ubonise ukuthi i-database host "iyi-database".
Amavolumu ku-Docker Compose: Ukuqhubeka kwedatha
Amavolumu ayindlela enconywayo yokwenza ulwazi oluqhubekayo olukhiqizwe yiziqukathi, njenge yolwaziAmafayela abasebenzisi, ama-backup, njll. Asetshenziswa futhi ukwabelana ngedatha phakathi kwezinsizakalo ngaphakathi kwesitaki esifanayo.
Esigabeni services Ungafaka amavolumu ngqo nge volumesKodwa uma ufuna ukuthi leyo volume ifinyeleleke ngeziqukathi eziningi noma ufuna ukuyiphatha ngokucacile, uyichaza futhi esigabeni esiphezulu. volumes kusuka ku-compose.yaml.
Cabanga ukuthi ufuna ukusetha uhlelo lokusekelayo lwesizindalwazi sakho. Ubungaba nensizakalo yesizindalwazi efaka ivolumu lapho igcina khona idatha yayo kanye nenye insizakalo enikezelwe kuma-backups anjalo Faka ivolumu efanayo kumodi yokufunda ukwenza ukuthumela noma ukuvumelanisa ngaphandle kokuthinta isitsha esiyinhloko.
I-Docker ikuvumela ukuthi ulungise ukucushwa kwamavolumu ngamapharamitha engeziwe (uhlobo lomshayeli, izinketho ezithile ze abashayeli izici zangaphandle, njll.), kodwa ezimweni eziningi into ewusizo kakhulu ukuvumela kwenzeke. I-Docker iphatha amavolumu ngokuzenzakalelayo ngaphandle kokuhlanya ngezilungiselelo ezingavamile.
Into ebalulekile ukucaca ngokuthi yimaphi amafolda kumasevisi akho okudingeka ahlale ekhona, futhi uwamemezele njengamavolumu ku-Compose ukuze ungalahlekelwa idatha lapho udala kabusha izitsha noma ubuyekeza izithombe.
Ukulungiselela: ukuphatha amafayela okucushwa
Isigaba configs Yenzelwe ukuphatha amafayela okucushwa yezinsizakalo ezingaphakathi kwe-stack yakho, ezifana namavolumu kodwa ikakhulukazi ezigxile ekucushweni.
Cabanga ngeseva ye-Apache noma ye-Nginx esebenza ku-Docker. Cishe uzodinga lungisa ifayela lakho lokucushwa Ukwakha kabusha isithombe njalo uma ushintsha lawa mafayela akusebenzanga kahle futhi kuyacasula, ikakhulukazi ezindaweni lapho amapharamitha evame ukulungiswa khona.
cunt okulungiselelwe Ungacacisa kusevisi oyifunayo sebenzisa ukucushwa okuthile bese uyichaza esigabeni configsKunezindlela eziningana zokuzichaza, ezivame kakhulu yilezi:
fileUkucushwa kukhiqizwa kusuka kufayela lendawo.external: uma imakwe njengetrueUkubhala kucabanga ukuthi ukucushwa sekuvele kukhona futhi kubhekiselwa kukho kuphela.name: Igama langaphakathi le-config ku-Docker, liwusizo uma lihlanganiswa neexternal: true.
Ngale ndlela ungabuyekeza ifayela lokucushwa emshinini wakho bese ulibuyisela ku- phakamisa isitaki ngaphandle kokwakha kabusha isithombe esiyisisekelo, ukugcina ikhodi yesithombe ihlukile ekucushweni okuqondene nendawo.
Izimfihlo: iziqinisekiso kanye nedatha ebucayi
Isigaba secrets ixazulula inkinga yakudalaNgiwagcina kuphi amaphasiwedi, okhiye be-API, kanye nolunye ulwazi olubucayi ngaphandle kokuwashiya ehlakazekile kulo lonke ikhodi noma i-YAML?
Njengoba kunjalo ngama-config, izimfihlo zingachazwa ngezindlela ezahlukeneInto evamile ukuthi:
file: imfihlo ikhiqizwa kusukela kokuqukethwe kwefayela (isibonelo, ifayela lombhalo elinesihluthulelo).environmentImfihlo idalwe kusetshenziswa inani le-environment variable ohlelweni lwakho.external: kubonisa ukuthi imfihlo isivele idaliwe futhi idinga ukubhekiselwa kuyo kuphela, okuwusizo ukugwema ukubhala ngaphezulu izimfihlo eziphathwa ngaphandle.name: igama langaphakathi lemfihlo, ikakhulukazi elifanele uma kuhlanganiswaexternal: truengezimfihlo ezidalwe elinye ithuluzi.
Ngezimfihlo ungenza izitsha ezidinga ukufinyelela kulezi ziqinisekiso zifunde ngendlela elawulwayo ngaphandle kokuzishiya zibonakala endaweni yokugcina amakhodi noma ku-composite.yaml uqobo, okuqinisa kakhulu ukuphepha kokufakwa kwakho.
Ukusebenza ngamafayela amaningi. Bhala futhi ufaka
Kumaphrojekthi amakhulu, akuvamile ukuthi uhlelo lwakho lokusebenza luhlukaniswe ngezinsizakalo eziningana, ngezinye izikhathi eziphathwa amaqembu ahlukene. Kulezi zimo, kuyasebenza... hlukanisa ukucushwa kube amafayela amaningi okubhala ukuze kwenziwe ngcono ukwakheka kwezakhiwo.
Indlela ejwayelekile ukuba ne- compose.yaml ifayela eliyinhloko lohlelo lokusebenza kanye namanye amafayela ezingxenye zengqalasizinda. Isibonelo, ungakwazi hambisa incazelo ye-Redis noma ezinye izinsizakalo zokusekela amafayela infra.yaml futhi gcina kuphela lokho okuphathelene ngqo nohlelo lwakho lokusebenza endaweni eyinhloko.
Ukuze wenze lokhu udala ifayela infra.yaml nesigaba sayo services lapho ushiya khona, isibonelo, isevisi ephelele ye-Redis. Bese, ku- compose.yaml okuyinhloko, ungeza isigaba include okukhomba ifayela infra.yaml.
Uma ugijima docker compose up Kusukela kufolda yephrojekthi, Bhala Hlanganisa amafayela womabili futhi kuveza zonke izinsizakalo njengokungathi ziku-YAML eyodwa, kodwa usenayo i-logic ehlukanisiwe futhi ehlelekile kakhulu.
Le ndlela yenza kube lula ngamaqembu ahlukene ukugcina amafayela awo okubhala kanye nokuhlanganiswa kohlelo lokusebenza lomhlaba wonke kusetshenziswa i-inclusives, okuwusizo kakhulu ku- izakhiwo ezineziqukathi eziningi noma izindawo ezinengqalasizinda eningi ehlanganyelwe.
I-Essential Docker Compose Commands
Nakuba i-Compose inekhathalogi enhle yemiyalo, emsebenzini wansuku zonke abantu abaningi basebenzisa abambalwa babo ngokuphindaphindiweKubalulekile ukuziqonda kahle ngoba yizo ezichaza indlela osebenza ngayo.
Okubaluleke kakhulu docker compose upLo myalo wakha izithombe ezidingekayo (uma zingekho kakade), udala izitsha, ulungiselela amanethiwekhi namavolumu, futhi uqale zonke izinsizakalo ezichazwe kufayela lakho Lokubhala. Ngumyalo owusebenzisayo uma ufuna ukuqala i-stack yakho.
Ngokuvamile kuhlanganiswa nenketho -d ukuyiqhuba ngemodi "ehlukanisiwe"Okusho ukuthi, ngemuva. Ngale ndlela awugcwalisi i-terminal ngamalogi futhi ungaqhubeka nokusebenzisa leyo seshini kweminye imiyalo. Isibonelo: docker compose up -d.
Ukuze umise futhi uhlanze lokho okuphakamisile, usebenzisa docker compose downokuvimba futhi kususe izitsha, amanethiwekhi, kanye nezithombe namavolumu ahlobene ngokuzikhethela. Amafulegi amabili avamile lapha yilawa --rmi (ukususa izithombe) kanye -v (ukususa amavolumu achazwe esigabeni volumes).
Uma ufuna ukubona ukuthi yiziphi iziqukathi eziyingxenye yephrojekthi nokuthi isimo sazo sinjani, ungagijima docker compose psLokhu kubhala isevisi ngayinye, isimo sayo (phezulu, ephumile, njll.), kanye nama-port avele, okuwusizo kakhulu ekuqinisekiseni ukuthi konke kusebenza kahle ngemva kwe- up.
Uma uvula i-stack yakho kumodi ehlukanisiwe, amalogi awaveli ku-terminal. Ukuze uwabuke, udinga ukusebenzisa... docker compose logskungaba emhlabeni jikelele noma ngokuhlunga ngesevisi. Ifulegi -f Ikuvumela ukuthi ulandelele izingodo ngesikhathi sangempela, okuwusizo kakhulu ku- lungisa iphutha lesevisi ethile ngaphandle kwesidingo sokufinyelela ngaphakathi kwesitsha.
Umsebenzi ojwayelekile: chaza compose.yaml, enza a docker compose up -d, hlola docker compose ps, buyekeza amalogi nge docker compose logs -f <servicio> Uma kukhona okungahambi kahle, futhi uma usuqedile, sebenzisa docker compose down ukushiya konke kuhlanzekile.
Uma kwenzeka ulahleka, docker compose --help Ikukhombisa uhlu lwemiyalo emincane etholakalayo kanye nezinketho zokukusiza ukhumbule ukuthi into ngayinye yenzani ngaphandle kokuya kumadokhumenti.
Ngenxa yakho konke okungenhla, ithuluzi eliyisihluthulelo Kunoma ubani osebenza ngeziqukathi ngaphandle kwamaphrojekthi ngamanye, i-Compose iyithuluzi elihle kakhulu. Ikuvumela ukuthi uthuthuke ngqo endaweni efana kakhulu (noma efana) nokukhiqiza, izinsizakalo zokulawula, amanethiwekhi, kanye nedatha evela kufayela elilula le-YAML, futhi ugweme izinkinga eziningi zokuhambisana kanye nokuthunyelwa eziphakama ngokungenakugwenywa lapho usebenza "endaweni" kuphela ngaphandle kweziqukathi. Uma usujwayele ukubhala ifayela elihle le-Compose YAML lamaphrojekthi akho, kunzima ukubuyela emuva.
Umbhali oshisekayo ngomhlaba wamabhayithi nobuchwepheshe ngokujwayelekile. Ngiyathanda ukwabelana ngolwazi lwami ngokubhala, futhi yilokho engizokwenza kule bhulogi, ngikubonise zonke izinto ezithakazelisayo kakhulu ngamagajethi, isofthiwe, ihadiwe, izitayela zobuchwepheshe, nokuningi. Inhloso yami ukukusiza ukuthi uzulazule emhlabeni wedijithali ngendlela elula nejabulisayo.
