Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Monisäiliösovellusten hallinta | Docker Composen Käyttö
Dockerin Perusteet

Monisäiliösovellusten hallinta

Pyyhkäise näyttääksesi valikon

Nykyaikaisten sovellusten rakentamisessa tarvitaan usein useiden palveluiden, kuten verkkopalvelimien, tietokantojen ja välimuistien, samanaikaista suorittamista, jotta ne voivat kommunikoida ja toimia yhtenäisenä järjestelmänä. Docker Compose helpottaa tätä prosessia antamalla mahdollisuuden määritellä kaikki palvelut, niiden riippuvuudet ja vuorovaikutukset yhdessä docker-compose.yml -tiedostossa.

Riippuvuuksien ja palvelulinkkien määrittely docker-compose.yml-tiedostossa

docker-compose.yml-tiedostossa jokainen palvelu voi määritellä riippuvuudet ja tavan, jolla se yhdistyy muihin palveluihin. depends_on-avain mahdollistaa palveluiden käynnistysjärjestyksen määrittelyn, varmistaen esimerkiksi, että tietokanta on käynnissä ennen kuin sovellus yrittää muodostaa yhteyttä siihen. Lisäksi Compose luo automaattisesti oletusverkon projektille, jolloin palvelut voivat löytää ja kommunikoida toistensa kanssa palvelun nimellä.

Oletetaan, että sinulla on verkkosovellus, joka tarvitsee tietokantaa. Compose-tiedostossa palvelut määritellään näin:

version: "3.8"
services:
  app:
    build: .
    depends_on:
      - db
  db:
    image: postgres:15

Tässä:

  • app-palvelu on riippuvainen db-palvelusta;
  • Compose käynnistää tietokantakontin ennen sovellusta;
  • Molemmat palvelut voivat viitata toisiinsa palvelun nimellä Compose-verkon sisällä.

Palveluiden skaalausstrategiat ja kokoonpanojen päivittäminen

Docker Compose mahdollistaa palveluiden helpon horisontaalisen skaalaamisen. Jos sovelluksen täytyy käsitellä enemmän liikennettä, voit lisätä palvelun konttien määrää käyttämällä --scale-lippua suoritettaessa docker compose up -komentoa.

Jos haluat ajaa kolme instanssia sovelluspalvelusta, käytä:

docker compose up --scale app=3
  • Tämä komento käynnistää kolme konttia app-palvelulle;
  • Kaikki kontit ovat yhdistetty samaan verkkoon ja voivat jakaa resursseja, kuten tietokannan;
  • Skaalattaessa varmista, että palvelut ovat tilattomia tai osaavat käsitellä useita instansseja oikein.

Kokoonpanojen päivittäminen Compose-ympäristössä on suoraviivaista:

  • Muokkaa docker-compose.yml-tiedostoa, esimerkiksi muuttamalla ympäristömuuttujia, resurssirajoja tai palvelukuvia;
  • Ota muutokset käyttöön seuraavalla komennolla:
docker compose up -d
  • Tämä komento luo uudelleen vain ne palvelut, joiden kokoonpano on muuttunut, mikä minimoi käyttökatkokset.

Monikonttisovellusten valvonta ja vianmääritys Compose-ympäristössä

Kun useita kontteja ajetaan samanaikaisesti, valvonta ja vianmääritys ovat tärkeitä. Docker Compose tarjoaa työkaluja palveluiden tilan ja lokien seuraamiseen. Voit tarkastella kaikkien konttien tulosteita reaaliajassa komennolla:

docker compose logs -f

Tämä komento näyttää kaikkien palveluiden lokit, jolloin virheet ja ongelmat on helpompi havaita niiden ilmetessä. Jos haluat keskittyä tiettyyn palveluun, määritä sen nimi:

docker compose logs db

Vianmääritystä varten voit siirtyä käynnissä olevaan konttiin komennolla:

docker compose exec app sh

Tämä komento avaa komentorivin app-konttiin, jolloin voit tarkastella tiedostoja, suorittaa diagnostiikkakomentoja tai tarkistaa ympäristömuuttujia. Resurssien käytön ja konttien tilan valvonta onnistuu myös Dockerin vakiotyökaluilla, kuten docker stats.

1. Mikä avain docker-compose.yml -tiedostossa varmistaa, että yksi palvelu käynnistyy ennen toista?

2. Miten skaalaat palvelun nimeltä worker viiteen instanssiin Docker Composella?

3. Millä komennolla näet kaikkien käynnissä olevien palveluiden reaaliaikaiset lokit Compose-sovelluksessa?

question mark

Mikä avain docker-compose.yml -tiedostossa varmistaa, että yksi palvelu käynnistyy ennen toista?

Valitse oikea vastaus

question mark

Miten skaalaat palvelun nimeltä worker viiteen instanssiin Docker Composella?

Valitse oikea vastaus

question mark

Millä komennolla näet kaikkien käynnissä olevien palveluiden reaaliaikaiset lokit Compose-sovelluksessa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 3. Luku 3
some-alt