DevOps-bootcamp · Oppitunti

Compose-tiedoston kirjoittaminen

Opetelkaa YAML-syntaksi, jolla `docker-compose.yml`-tiedostossa määritetään palvelut, verkot ja volyymit.

Oppitunti 2/411 vaihetta

Compose-tiedoston kirjoittaminen on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

Compose-tiedosto: rakennuspiirustus

Tervetuloa kirjoittamaan Docker Compose -tiedostoja! docker-compose.yml-tiedosto on rakennuspiirustuksesi usean kontin Docker-sovellusten määrittämiseen ja suorittamiseen.

Se käyttää YAML-syntaksia sovelluksesi palveluiden, verkkojen ja volumejen määrittämiseen yhdessä tiedostossa.

Compose-tiedoston kirjoittaminen — kuvitus 1

YAML: nopea kertaus

Docker Compose -tiedostot kirjoitetaan YAML-muodossa (YAML Ain't Markup Language). Se on ihmisille helppolukuinen tiedon sarjallistamisen standardi.

  • Avain–arvo-parit: key: value
  • Luettelot: Kohteet alkavat yhdysmerkillä (- item)
  • Sisennys: Ratkaisevan tärkeä rakenteen ja hierarkian määrittämisessä. Käytä välilyöntejä, älä sarkaimia!

Avain `version`

Jokainen docker-compose.yml-tiedosto alkaa version-avaimella. Se määrittää Compose-tiedoston muotoversion ja auttaa Docker Composea ymmärtämään, miten tiedosto tulkitaan.

Useimmille nykyaikaisille sovelluksille suositellaan versiota '3.8' tai vastaavaa '3.x'-versiota.

version: '3.8'

Määritä `services`

services-osiossa määrität sovelluksesi muodostavat yksittäiset kontit eli palvelut. Jokainen palvelu edustaa jotakin komponenttia, kuten verkkopalvelinta tai tietokantaa.

Luettelet jokaisen palvelun services-osion alla itse valitsemallasi nimellä.

version: '3.8'
services:
  web:
    # Service configuration goes here
  database:
    # Another service's configuration

Palvelun `image` ja `ports`

Palvelumäärityksen sisällä image määrittää käytettävän Docker-levykuvan, esimerkiksi nginx:latest. ports-avain yhdistää kontin portit isäntäkoneen portteihin ja mahdollistaa ulkoisen käytön.

  • "80:80" yhdistää isäntäkoneen portin 80 kontin porttiin 80.
version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Palvelun `volumes`

Palvelun volumes-avaimen avulla voit liittää polkuja isäntäkoneeltasi konttiin tai käyttää nimettyjä volumeja pysyvään tallennukseen.

Tässä esimerkissä paikallinen hakemisto ./app liitetään kontin sisällä olevaan polkuun /usr/src/app.

version: '3.8'
services:
  app:
    image: my-node-app
    volumes:
      - ./app:/usr/src/app

Palvelun `environment`-muuttujat

Käyttäkää environment-avainta välittääksenne ympäristömuuttujia palvelunne säilöille. Tämä on olennaista asetuksille, jotka voivat muuttua ympäristöjen välillä, kuten tietokantayhteysmerkkijonoille.

Muuttujat voidaan ilmoittaa avain–arvo-pareina tai luettelomuodossa.

version: '3.8'
services:
  backend:
    image: my-api
    environment:
      - DATABASE_URL=postgres://user:pass@host:5432/db
      - NODE_ENV=development

Ylimmän tason `networks` ja `volumes`

Sen lisäksi, että määrittelette ne palveluiden sisällä, voitte ilmoittaa mukautettuja nimettyjä taltioita ja verkkoja myös docker-compose.yml-tiedoston ylimmällä tasolla.

Näin tietojen säilytyksen ja säilöjen välisen viestinnän määritykset ovat järjestelmällisempiä ja uudelleenkäytettäviä.

version: '3.8'
services:
  # ... service definitions ...

networks:
  my_app_network:
    # custom network configuration

volumes:
  db_data:
    # named volume configuration

Kaikki yhdessä

Tässä on pieni esimerkki, joka kokoaa oppimamme yhteen. Siinä määritellään verkkopalvelu ja tietokantapalvelu sekä käytetään imagea, portteja ja nimettyä taltiota.

Huomaatte, miten sisennys luo rakenteen.

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - web_content:/usr/share/nginx/html
  db:
    image: postgres:13
    environment:
      - POSTGRES_DB=mydb
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=secret

volumes:
  web_content:
  db_data:

Compose-tiedoston tarkistus

Mikä seuraavista YAML-katkelmista määrittelee oikein Docker Compose -palvelun nimeltä 'api', käyttää 'myapi:1.0'-imagea ja julkaisee säilön portin 3000 isännän portissa 8080?

Kertaus: Compose-tiedoston perusteet

Hienoa työtä! Olette oppineet docker-compose.yml-tiedoston kirjoittamisen perusteet.

  • Tiedosto alkaa version-määrityksellä.
  • services määrittää sovelluksen komponentit.
  • Kukin palvelu käyttää image-määritystä, voi julkaista ports-portteja, käyttää volumes-taltioita tietojen säilytykseen ja määrittää environment-muuttujia.
  • Ylimmän tason networks ja volumes mahdollistavat edistyneet asetukset.

Tämän YAML-rakenteen hallitseminen on tärkeää usean säilön sovellusten orkestroinnissa!

Aloita maksutta

Opi DevOps-bootcamp tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
142
Oppitunnit
568

Usein kysytyt kysymykset

Onko oppitunti ”Compose-tiedoston kirjoittaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-oppimispolun 3 oppituntia, myös oppitunnin “Compose-tiedoston kirjoittaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Compose-tiedoston kirjoittaminen”?

Opetelkaa YAML-syntaksi, jolla `docker-compose.yml`-tiedostossa määritetään palvelut, verkot ja volyymit. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Compose-tiedoston kirjoittaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä DevOps-bootcamp-oppitunnilla?

Kyllä. Jokainen DevOps-bootcamp-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Mikä Docker Compose on?
  2. Compose-tiedoston kirjoittaminen
  3. Usean palvelun sovellusten käyttöönotto
  4. Ympäristömuuttujat ja .env-tiedostot
← Takaisin: DevOps-bootcamp