Celoten vodnik Docker Compose za orkestriranje kontejnerjev

Zadnja posodobitev: 17/12/2025
Avtor: Isaac
  • Docker Compose vam omogoča definiranje in upravljanje več vsebnikov iz ene same datoteke YAML, kar olajša delo z aplikacijami, ki temeljijo na mikroservisih.
  • Razdelek s storitvami je obvezen in je dopolnjen z omrežji, nosilci podatkov, konfiguracijami in skrivnostmi za nadzor komunikacije, vztrajnosti in konfiguracije.
  • Primeri, kot sta Flask+Redis ali aplikacija s polnim skladom, vključno s frontendom, backendom in podatkovno bazo, kažejo, kako Compose poenostavlja razvoj in uvajanje.
  • P ukazi docker sestavlja gor, dol, ps in dnevniki Predstavljajo osnovni potek dela za dvigovanje, odpravljanje napak in zaustavljanje skladov zabojnikov.

Vadnica za Docker Compose korak za korakom

Če ste že eksperimentirali s kontejnerji in videli, da za "pravo" aplikacijo potrebujete več kot ena storitev, ki deluje hkrati (baza podatkov, API, frontend, predpomnilnik…), boste prej ali slej naleteli na Docker Compose. To orodje vam omogoča, da vso to opremo nastavite z eno samo datoteko in nekaj ukazi, brez žongliranja s terminali in neskončnimi skripti.

V tej vadnici boste izvedeli, kaj je Docker Compose in kako deluje njegova datoteka. compose.yaml in kako orkestrirati aplikacije Čiste nastavitve z več vsebniki: od preprostih primerov s Flask in Redis do bolj kompleksnih arhitektur s frontendom, backendom in podatkovno bazo. Spoznali boste tudi mreženje, nosilce podatkov, konfiguracije, skrivnosti in ključne ukaze za udobno delo v razvojnih in zahtevnejših okoljih.

Kaj je Docker Compose in zakaj ga je vredno uporabljati?

Docker Compose je razširitev Dockerja, ki omogoča definirajte in upravljajte več vsebnikov kot da bi šlo za eno samo aplikacijo. Namesto ročnega zagona vsake storitve z njenim »docker run« in parametri, vse opišete v datoteki YAML in jo zaženete z enim samim ukazom.

Lepota Composea je v tem, da je na njem zgrajenih veliko sodobnih aplikacij. mikroservisi, ki se nahajajo v posameznih vsebnikihPodatkovna baza, API, vmesnik, sistem čakalnih vrst, predpomnilnik, podoben Redisu, itd. Docker priporoča, da vsak vsebnik izvaja eno samo storitev, zato če poskušate vse stlačiti v eno samo sliko, dobite pošast, ki jo je težko skalirati in vzdrževati.

V istem vsebniku lahko zaženete dve ali več storitev, vendar To izniči številne Dockerjeve prednosti.Če eden odpove, to potegne navzdol tudi ostale; ne morete skalirati samo dela, ki je najbolj obremenjen, upravljanje dnevnikov, virov in napak pa postane velika zmeda.

Z Docker Compose definirate vsako storitev posebej in določite, kako se povezujejo med seboj, katere podatke hranijo, katera vrata izpostavljajo, katere okoljske spremenljivke uporabljajo ... Na ta način Če ena posoda odpove, lahko ostale še naprej delujejo. odvisno od tega, kako ga konfigurirate, in skaliranje določenega dela je tako preprosto kot spreminjanje njegovih nastavitev ali števila replik.

Poleg tega se Compose odlično ujema z delovnimi procesi CI/CD in uvajanje v produkcijoUporabljate ga lahko neposredno z orodji, kot sta Portainer ali Docker Swarm, in če delate s Kubernetes, vam projekti, kot je Kompose, omogočajo prevajanje datoteke compose.yaml v Kubernetes manifeste, ne da bi morali vse prepisati ročno.

Konfiguriranje storitev z Docker Compose

Predpogoji za sledenje vadnici Docker Compose

Za udobno sledenje primerom v tej vadnici potrebujete imeti nameščen Docker in Docker ComposeDanes obstajata dve glavni poti:

  • Docker Engine + Docker Compose nameščene kot samostojne binarne datoteke.
  • DockerDesktop, ki vključuje Docker Engine, Docker Compose in grafični vmesnik.

Pomembno je, da imate minimalno osnovo osnovni Dockerjevi ukazi (slike, vsebniki, vrata, nosilci) in ne bojte se uporabljati ukazne vrstice. Primeri so običajno predvideni v Linux (na primer Ubuntu 22.04), vendar logika velja enako tudi v Windows in macOS z Docker Desktopom.

Preverite, ali je vse v redu, tako da ga zaženete na svojem terminal nekaj tako preprostega kot »docker –različica« in »docker compose različica«Če se oba ukaza odzoveta brez napake, lahko nadaljujete s primeri.

Osnovna struktura datoteke compose.yaml

Srce Docker Compose je datoteka compose.yaml (ali docker-compose.yml)Tam opišemo, katere storitve želimo nastaviti in kako naj bodo povezane. Čeprav se je polje prej uporabljalo version Za označevanje različice formata trenutna dokumentacija priporoča, da je ne definirate, tako da se vedno uporablja najnovejša različica sheme.

V datoteki Compose boste imeli več možnih razdelkov, čeprav je le eden obvezen: StoritveOd tam lahko dodate druge razdelke, odvisno od zahtevnosti vašega projekta:

  • Storitve: definicija vsake mikrostoritve (obvezno).
  • omrežij: omrežja po meri za nadzor komunikacije med vsebniki.
  • prostornine: nosilci podatkov za shranjevanje ali njihovo skupno rabo med storitvami.
  • konfiguracije: konfiguracija storitve (npr. konfiguracijske datoteke spletnega strežnika).
  • skrivnostiupravljanje občutljivih informacij (gesla, API ključi…).

V tej vadnici boste videli, kako združiti vse te dele za tipičen projekt, ki vključuje aplikacija, baza podatkov in APIin tudi primer spletne aplikacije v Python s Flaskom in Redisom.

Storitve v Docker Compose: jedro definicije

Oddelek storitve so bistveni del iz katere koli datoteke Compose. V njej definirate vse vsebnike, ki bodo sestavljali vašo aplikacijo, in jim daste želeno ime (na primer web, database, api, redis, Itd.)

Za vsako storitev lahko določite dobro število parametrovMed njimi so nekateri, ki se pogosto uporabljajo v projektih iz resničnega sveta:

Parameter build označuje, kje se nahaja datoteka Dockerfile iz katerega bo zgrajena slika storitve. Običajno je določen kontekst (imenik), kjer se nahaja datoteka Dockerfile aplikacije, ki jo želite zapakirati.

Če že imate ustvarjeno sliko ali jo želite uporabiti iz registra, uporabite image sklicevati se nanjIme sledi obliki [<registry>/][<project>/]<image>[:<tag>|@<digest>]In če želite nadzorovati, kdaj se ta slika prenese ali posodobi, lahko uporabite pull_policy.

Polje ports Uporablja se za preslikavo vrat med gostiteljem in vsebnikom.Sintaksa je tipa [HOST:]CONTAINER[/PROTOCOL]Na primer, če baza podatkov PostgreSQL posluša na vratih 5432 znotraj vsebnika in jo želite izpostaviti na vratih 5555 gostitelja, bi naredili nekaj takega: "5555:5432" na seznamu pristanišč.

  Celoten vodnik o ključu SysRq v Linuxu

Politika ponovnega zagona se nadzoruje z restartki označuje, kaj storiti, ko se vsebnik prekine zaradi napake ali se ustavi. Tipične vrednosti so no, always, on-failure y unless-stoppedkar omogoča delovanje kritičnih storitev tudi v primeru občasnih izpadov.

Če ena storitev potrebuje, da je druga na voljo pred njenim zagonom, lahko uporabite depends_on za definiranje odvisnosti med vsebnikiKlasični primer je aplikacija, ki zahteva, da je baza podatkov delujoča, da se prepreči prekinitev začetne povezave.

Za konfiguracijo in poverilnice imate na voljo dva pogosta pristopa: env_file y environment. Z env_file Kažete na eno ali več datotek .env z okoljskimi spremenljivkami, medtem ko v environment Lahko jih naštejete neposredno v YAML. Najboljša praksa je uporaba datotek. .env da preprečite vdelavo gesel in občutljivih podatkov v samo datoteko compose.yaml.

Parameter volumes omogoča priklop gostiteljskih poti ali nosilcev podatkov Znotraj vsebnika boste uporabljali tako shranjevanje podatkov kot tudi skupno rabo map med storitvami. Tukaj se boste sklicevali le na nosilce podatkov, ki jih boste kasneje lahko definirali v zgornjem razdelku. volumes če jih želite bolj eksplicitno deliti ali upravljati.

S temi polji lahko že zgradite dokaj popolne storitve. Specifikacija Compose vključuje veliko več naprednih možnosti (zdravje, omejitve virov, ukazi škorenjitd.), vendar s tem že pokrivate najpogostejše uporabe.

Primer 1: Spletna aplikacija v Pythonu s Flaskom in Redisom

Tipičen primer za razumevanje Docker Compose je ustvarjanje preprosta spletna aplikacija v PythonuUporaba Flaska za prikazovanje strani in Redisa kot shrambe v pomnilniku za števec zadetkov. Ideja je, da vam na računalnik ni treba namestiti ne Pythona ne Redisa: vse teče znotraj vsebnikov.

Delovni tok bi bil nekako takšen: najprej ustvarite imenik za projekt in vanj dodate datoteko app.py s kodo Flask. V tej kodi uporabljate "redis" kot ime gostitelja in vrata 6379, ki so privzeta vrata za storitev Redis v vašem vsebniku.

Funkcija, ki upravlja števec obiskovalcev Večkrat se poskuša povezati z Redisom. Preden obupate, ne pozabite, da lahko po dvigu celotnega sklada traja nekaj sekund, da postane vsebnik Redis na voljo.

Poleg app.py, ustvarite datoteko requirements.txt z odvisnostmi Pythona (na primer Flask in redis-py) in datoteko Dockerfile, ki določa, kako zgraditi sliko vaše spletne aplikacije: osnovna slika Pythona (3.7, 3.10 ali karkoli drugega), delovni imenik, okoljske spremenljivke za Flask, namestitev gcc in sistemske odvisnosti, kopija datoteke requirements.txt, namestitev paketa in kopija kode.

V datoteki Dockerfile označite tudi vrata, ki bodo prikazala vsebnik (na primer 5000) in definirate privzeti ukaz, običajno flask run --debug ali podobno, tako da se samodejno zažene, ko je vsebnik ustvarjen.

Ko je vse to pripravljeno, datoteka compose.yaml definira dve storitvi: eno, imenovano na primer web, ki je zgrajen iz datoteke Dockerfile projekta in navzven izpostavi vrata 8000 (preslika vrata gostitelja 8000 na vrata vsebnika 5000), in še enega z imenom redis da Povlecite uradno sliko Redisa iz Docker Huba.

Za zagon aplikacije preprosto pojdite v imenik projekta in zaženite "sestavi docker"Compose poskrbi za prenos slike Redis, izgradnjo slike vaše spletne aplikacije in zagon obeh storitev v pravilnem vrstnem redu.

Ko je zagnano in deluje, v brskalnik vnesete http://localhost:8000 (o http://127.0.0.1:8000) in videli bi morali sporočilo tipa »Pozdravljen, svet« in Števec obiskovalcev, ki se poveča vsakič, ko ponovno naložite stran. Če pregledate lokalne slike z docker image lsVideli boste nekaj takega redis y web ustvarjeno ali preneseno.

Ko želiš vse ustaviti, lahko to storiš CTRL+C v terminalu, kjer ste pustili »docker compose up« ali izvršiti docker compose down iz imenika projekta. To bo ustavilo in odstranilo vsebnike, ki jih je ustvaril ta sestava.

Izboljšanje poteka dela: Vezava priklopov in spremljanje sestavljanja

Delo pri razvoju z Dockerjem je bolj priročno, če Ni vam treba rekonstruirati slike vsakič, ko se dotaknete kode. Tukaj pridejo v poštev Bind Mounts in v novejših različicah Docker Compose Watch.

Priklop z vezavo vključuje priklop mape iz vašega računalnika znotraj vsebnika. V datoteki compose.yaml dodate razdelek spletni storitvi. volumes ki preslika imenik projekta v delovni imenik iz posode, na primer .:/codeNa ta način se vse spremembe, ki jih naredite v urejevalniku, takoj odražajo v vsebniku.

Če aktivirate tudi način za odpravljanje napak v Flasku s spremenljivko FLASK_DEBUG=1, ukaz flask run Aplikacija se bo samodejno znova naložila, ko bo zaznala spremembe v datotekah, ne da bi jo bilo treba ustaviti in ponovno zagnati.

Docker Compose Watch gre še korak dlje: lahko uporabite »docker compose watch« ali »docker compose up –watch« To omogoča Composeu, da inteligentneje spremlja datoteke projekta in sinhronizira spremembe z vsebniki. Ko shranite datoteko, se ta kopira v vsebnik in razvojni strežnik posodobi aplikacijo, ne da bi moral ponovno zagnati celoten vsebnik.

Poskusite na primer spremeniti pozdravno sporočilo v app.py od "Pozdravljen, svet!" do fraze, kot je "Pozdravljeni iz Dockerja"Shranite datoteko, osvežite brskalnik in novo sporočilo boste videli takoj, medtem ko števec obiskov še naprej teče, ne da bi izgubil svoje stanje.

In ko končate z delom, lahko kot vedno potegnete docker compose down za izklopite in očistite posode ki so bili v teku s tem skladom.

  Bližnjice na tipkovnici v Linuxu: najboljši vodnik za hitrejše delo

Primer 2: Aplikacija s polnim skladom s frontendom, backendom in podatkovno bazo

Če si želite ogledati Docker Compose v nekoliko bolj realistični arhitekturi, si predstavljajte aplikacija za seznam opravil (Todo List) s frontendom v Vue.js, API-jem v Node.js in bazo podatkov MongoDB. Vsak del se nahaja v svojem imeniku in ima svojo datoteko Dockerfile.

V repozitoriju boste morda našli mapo frontend z aplikacijo Vue in še eno backend s strežnikom Node. Zaledni sistem razkriva končne točke za ustvarjanje, seznam, posodabljanje in brisanje opravilin se poveže z MongoDB, da jih shrani. Sprednji del uporablja te končne točke za prikaz in upravljanje seznama opravil v brskalniku.

Datoteka docker-compose.yml Nahaja se v korenu projekta in definira tri storitve: frontend, backend y databaseStoritev frontend je zgrajena iz datoteke Dockerfile v ustrezni mapi, običajno pri čemer so razkrita notranja vrata 80 in preslikana na vrata 5173 gostitelja (na primer za uporabo istega URL-ja kot pri lokalnem razvoju).

Zaledni del je zgrajen iz datoteke Dockerfile v imeniku backend, izpostavi vrata 3000 (tako znotraj kot zunaj vsebnika, če želite poenostaviti) in deklarira odvisnost od baze podatkov da zagotovite, da je MongoDB na voljo ob zagonu.

Storitev database uporabite neposredno Uradna slika MongoDB in recimo zgradite volumen mongodb_datav /data/db, kjer Mongo shranjuje svoje podatke. Ta prostornina je deklarirana v zgornjem razdelku. volumes iz compose, tako da se podatki ohranijo tudi, če izbrišete in ponovno ustvarite vsebnike.

Končno se vse te storitve povezujejo prek omrežja po meri, na primer my-network, opredeljeno v razdelku networksTo omogoča njihovo razreševanje po imenu storitve (zaledni sistem se lahko poveže z Mongom z uporabo imena gostitelja). database) in da je promet enkapsuliran v tem izoliranem omrežju.

Ko je konfiguracija pripravljena, zaženite docker compose up V jedru projekta je odgovoren za zgradite ali prenesite slike in zaženite tri vsebnikeLahko preverite, ali je vse na svojem mestu z docker compose ps, nato pa dostop do http://localhost:5173 za ogled aplikacije Vue v brskalniku in ustvarjanje prvih nalog.

Mreženje v Docker Compose: povezovanje storitev med seboj

Omrežja so plast, ki omogoča vašim vsebnikom "Vidijo" se in govorijo nadzorovanoDocker privzeto že ustvarja omrežja za Compose, vendar vam njihova eksplicitna definicija daje več jasnosti in nadzora nad tem, kaj lahko s čim komunicira.

Deluje preprosto: vsaka storitev vključuje polje networks kjer navedete, katerim omrežjem pripada, nato pa v zgornjem razdelku networks Ta omrežja definirate z njihovo konfiguracijo. Najpogostejši (in v mnogih primerih priporočen) pristop je uporaba gonilnika. bridge.

Mostno omrežje ustvarja zasebni prostor omrežje za vaše zabojnikez avtomatskim razreševanjem DNS-a na podlagi imena storitve. To pomeni, da če se na primer vaša storitev baze podatkov pokliče databaseVsaka druga storitev v istem omrežju se lahko poveže samo z database kot ime gostitelja.

V projektu s frontendom, backendom in podatkovno bazo se lahko na primer odločite za ustvarjanje omrežja frontenda in omrežja backenda. Frontend bi se povezal z backendom, backend pa z podatkovno bazo, vendar bi frontend in podatkovna baza ... Ne bi nujno morali deliti omrežjazmanjšanje notranje izpostavljene površine.

V kodi se to prevede v nekaj tako preprostega, kot je dodelitev ustreznega omrežja vsaki storitvi in ​​nato definiranje teh omrežij z mostovi gonilnikov. Na ravni aplikacije je najpreprostejši pristop uporaba ime storitve kot gostitelja pri konfiguriranju povezav: app a databaseNa primer, preprosto tako, da navedete, da je gostitelj baze podatkov »baza podatkov«.

Zvezki v Docker Compose: Vztrajnost podatkov

Zvezki so priporočen način za ohraniti informacije, ki jih ustvarijo vsebnikiKot podatkovnih bazUporabniške datoteke, varnostne kopije itd. Uporabljajo se tudi za skupno rabo podatkov med storitvami znotraj istega sklada.

V razdelku services Nosilce lahko namestite neposredno z volumesČe pa želite, da je ta prostor dostopen iz več vsebnikov ali da ga želite upravljati bolj eksplicitno, ga definirate tudi v zgornjem razdelku. volumes iz datoteke compose.yaml.

Predstavljajte si, da želite nastaviti sistem varnostnega kopiranja za svojo bazo podatkov. Storitev baze podatkov bi namestila nosilec, kjer shranjuje svoje podatke, in drugo storitev, namenjeno varnostnim kopijam, ki Isti nosilec priklopite v načinu branja za izvajanje izvozov ali sinhronizacij brez dotikanja glavnega vsebnika.

Docker vam omogoča natančno nastavitev konfiguracije nosilcev podatkov z več parametri (vrsta gonilnika, posebne možnosti za vozniki zunanji dejavniki itd.), vendar je v večini primerov najbolj praktično, da se to zgodi. Docker samodejno upravlja zvezke brez pretiravanja z nenavadnimi konfiguracijami.

Pomembno je, da jasno določite, katere mape v vaših storitvah morajo biti trajne, in jih v Compose deklarirate kot nosilce podatkov, da ne izgubite podatkov pri ponovnem ustvarjanju vsebnikov ali posodabljanju slik.

Konfiguracije: upravljanje konfiguracijskih datotek

Oddelek configs Zasnovan je za upravljanje konfiguracijskih datotek storitev znotraj vašega sklada, podobno kot nosilci podatkov, vendar posebej osredotočeno na konfiguracijo.

Predstavljajte si strežnik Apache ali Nginx, ki deluje na Dockerju. Verjetno boste potrebovali prilagodite svojo konfiguracijsko datoteko Obnovitev slike vsakič, ko spremenite te datoteke, je neučinkovita in nadležna, zlasti v okoljih, kjer se parametri pogosto spreminjajo.

  Kako popraviti kodo napake Disney Plus 24

z konfiguracije V storitvi lahko določite, katero storitev želite uporabite določeno konfiguracijo in ga nato opišite v razdelku configsObstaja več načinov za njihovo opredelitev, najpogostejši pa so:

  • fileKonfiguracija se ustvari iz lokalne datoteke.
  • external: če je označeno kot trueCompose predpostavlja, da konfiguracija že obstaja in se nanjo le sklicuje.
  • name: Notranje ime konfiguracije v Dockerju, uporabno pri kombiniranju z external: true.

Na ta način lahko posodobite konfiguracijsko datoteko na svojem računalniku in se vrnete na dvignite sklad brez ponovne izgradnje osnovne slike, pri čemer je koda slike ločena od konfiguracije, specifične za okolje.

Skrivnosti: poverilnice in občutljivi podatki

Oddelek secrets rešuje klasičen problemKam shranim gesla, ključe API-ja in druge občutljive podatke, ne da bi jih pustil raztresene po kodi ali YAML-u?

Tako kot pri konfiguracijah je mogoče tudi skrivnosti definirati na različne načine.Običajna stvar je:

  • file: skrivnost se ustvari iz vsebine datoteke (na primer besedilne datoteke s ključem).
  • environmentSkrivnost se ustvari z uporabo vrednosti okoljske spremenljivke v vašem sistemu.
  • external: označuje, da je bila skrivnost že ustvarjena in se nanjo le sklicujemo, kar je uporabno za preprečevanje prepisovanja skrivnosti, ki se upravljajo od zunaj.
  • name: notranje ime skrivnosti, še posebej pomembno pri kombiniranju external: true s skrivnostmi, ki jih je ustvarilo drugo orodje.

S skrivnostmi lahko ustvarite vsebnike, ki potrebujejo dostop do teh poverilnic. preberite jih nadzorovano ne da bi jih morali pustiti vidne v repozitoriju kode ali v sami datoteki compose.yaml, kar znatno okrepi varnost vaših uvedb.

Delo z več datotekami Sestavljanje in vključevanje

Pri velikih projektih ni neobičajno, da je vaša aplikacija razdeljena na več storitev, ki jih včasih upravljajo različne ekipe. V teh primerih je praktično ... ločite konfiguracijo v več datotek Compose za boljšo modularizacijo arhitekture.

Tipičen pristop je, da imamo compose.yaml glavno datoteko za aplikacijo in druge datoteke za dele infrastrukture. Na primer, lahko premakni definicijo Redisa ali druge storitve za podporo datotekam infra.yaml in v glavnem sporočilu zapišite le tisto, kar se neposredno nanaša na vašo aplikacijo.

Če želite to narediti, ustvarite datoteko infra.yaml s svojim oddelkom services kjer na primer pustite celotno storitev Redis. Nato v svojem compose.yaml glavni, dodate razdelek include ki kaže na datoteko infra.yaml.

Ko tečeš docker compose up Iz imenika projekta, Compose Združi obe datoteki in prikaže vse storitve, kot da bi bile v enem samem YAML-u, vendar je logika še vedno ločena in bolj organizirana.

Ta tehnika različnim ekipam olajša vzdrževanje lastnih datotek Compose in sestavljanje globalne aplikacije z vključitvami, kar je zelo uporabno pri arhitekture z več deset vsebniki ali okolja z veliko skupne infrastrukture.

Bistveni ukazi Docker Compose

Čeprav ima Compose dober katalog ukazov, jih večina ljudi pri vsakodnevnem delu uporablja peščica jih rednoPomembno jih je obvladati, saj so tisto, kar opredeljuje vaš potek dela.

Najpomembnejše je docker compose upTa ukaz zgradi potrebne slike (če še ne obstajajo), ustvari vsebnike, konfigurira omrežja in nosilce podatkov ter zažene vse storitve, definirane v datoteki Compose. To je ukaz, ki ga uporabite, ko želite zagnati sklad.

Običajno je kombinirana z možnostjo -d zagnati ga v "odklopljenem" načinuTo pomeni, v ozadju. Na ta način ne boste napolnili terminala z dnevniki in lahko to sejo še naprej uporabljate za druge ukaze. Na primer: docker compose up -d.

Za ustavitev in čiščenje dvignjenega bremena uporabite docker compose downki ustavi in ​​odstrani vsebnike, omrežja in po izbiri povezane slike in nosilce podatkov. Dve zelo pogosti zastavici sta --rmi (za brisanje slik) in -v (za odstranitev količin, definiranih v razdelku volumes).

Če želite videti, kateri kontejnerji so del projekta in kakšno je njihovo stanje, lahko zaženete docker compose psTo navaja vsako storitev, njeno stanje (vklopljena, zaprta itd.) in izpostavljena vrata, kar je zelo uporabno za preverjanje, ali vse deluje pravilno po up.

Ko zaženete sklad v ločenem načinu, se dnevniki ne prikažejo v terminalu. Za ogled morate uporabiti ... docker compose logsbodisi globalno bodisi s filtriranjem po storitvi. Zastavica -f Omogoča vam sledenje dnevnikov v realnem času, kar je zelo uporabno za odpravljanje napak v določeni storitvi brez potrebe po dostopu do notranjosti posode.

Tipičen potek dela: definiraj compose.yaml, izvedite docker compose up -d, preverite pri docker compose ps, pregled dnevnikov z docker compose logs -f <servicio> Če gre kaj narobe in ko končate, uporabite docker compose down da pusti vse čisto.

Če se kdaj izgubiš, docker compose --help Prikaže vam seznam razpoložljivih podukazov in možnosti, ki vam pomagajo zapomniti, kaj vsaka stvar počne, ne da bi morali iti v dokumentacijo.

Glede na vse zgoraj navedeno, ključno orodje Za vse, ki delajo z vsebniki, ki presegajo zgolj posamezne projekte, je Compose odlično orodje. Omogoča vam neposreden razvoj v okolju, ki je zelo podobno (ali enako) produkciji, nadzornim storitvam, omrežjem in podatkom iz preproste datoteke YAML, ter se izognete številnim težavam z združljivostjo in uvajanjem, ki se neizogibno pojavijo pri delu samo "lokalno" brez vsebnikov. Ko se enkrat navadite pisati dobro datoteko Compose YAML za svoje projekte, se je težko vrniti nazaj.