Docker kaip automatizavimas

Skip to content

Tai mašinu versta tekstas, kuriame gali būti klaidų!

Docker supaprastina programų diegimą. Vietoj to, kad programinę įrangą įdiegtumėte ir konfigūruotumėte rankiniu būdu serveryje, viską apibrėžiate konfigūracijos failuose. Rezultatas yra atkuriamas, perkelliamas ir greitai įdiegiama.

Kas yra Docker Compose?

Naudojant Docker Compose apibrėžiate kelis servisus viename faile (docker-compose.yml). Kiekvienas servis yra konteineris su savo konfigūracija.

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"

Vienas įsakymas nustato viską:

docker compose up -d
# Starter tjenesten i bakgrunnen.
# Pradeda paslaugą fone.

Ar reikia perkelti paslaugą į kitą serverį? Nukopijuokite failą ir paleiskite tą pačią komandą. Viskas identiška.

Kodėl tai automatizavimas?

Palyginkite skirtumą:

Rankinis nustatymas Su Docker Compose
Įdiekite Nginx rankiniu būdu image: nginx:latest
Konfigūruokite prievadus ports: "80:80"
Įdiekite Grafana rankiniu būdu image: grafana/grafana:latest
Dokumentuokite visus žingsnius Viskas dokumentuota .yml faile
Pakartokite viską kitame serveryje docker compose up -d

Docker Compose failas yra dokumentacija. Jis tiksliai aprašo, kokios paslaugos veikia, kokius prievadus jos naudoja ir kaip yra konfigūruotos.

Naudojami Docker komandų

Komanda Ką ji daro
docker compose up -d Paleidžia visas paslaugas fone
docker compose down Sustabdo ir pašalina visus konteinerius
docker compose logs -f Seka logus realiuoju laiku
docker compose pull Atsisiunčia paskutines visų imagų versijas
docker compose restart Pradeda iš naujo visas paslaugas
docker ps Rodo veikianius konteinerius

Volumes: Duomenų saugojimas už konteinerio ribų

Containeriai yra laikini. Jei ištrinsite containerį, visas turinys išnyks. Norėdami išsaugoti duomenis, naudojame volumes:

services:
  database:
    image: postgres:16
    ports:
      - "5432:5432"
    environment:
      POSTGRES_PASSWORD: slaptis
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

Čia duomenų bazės failai saugomi tome, pavadintame db-data. Net jei ištrinsite ir sukursite konteinerį iš naujo, duomenys vis tiek išliks.

Paslaugų atnaujinimas

Atnaujinti Docker paslaugą yra paprasta:

# Atsisiųsti naujausią versiją
docker compose pull

# Paleisti iš naujo su nauja versija
docker compose up -d

Palyginkite tai su rankiniu būdu įdiegtos programinės įrangos atnaujinimu, kai galbūt turite atsisiųsti, konfigūruoti ir tikėtis, kad niekas nesuges.

Easy Užduotis 1 – Nginx nustatymas su Docker Compose

Sukurkite docker-compose.yml, kuris paleidžia Nginx žiniatinklio serverį:

  1. Sukurkite naują aplanką ir sukurkite failą docker-compose.yml
  2. Apibrėžkite paslaugą su image: nginx:latest 80 prievadu
  3. Paleiskite docker compose up -d
  4. Apsilankykite http://localhost naršyklėje

Medium Užduotis 2 – Pridėti paslaugą

Papildykite docker-compose.yml iš 1 užduoties papildoma paslauga. Pavyzdžiui:

Paleiskite viską naudodami docker compose up -d ir įsitikinkite, kad abi paslaugos veikia vienu metu.

Apibendrinimas

  • Docker Compose leidžia apibrėžti kelias paslaugas viename faile
  • Compose failas yra ir konfigūracija, ir dokumentacija
  • Tomai saugo duomenis už konteinerio ribų, kad jie išliktų perkraunant
  • Atnaujinimas yra docker compose pull + docker compose up -d
  • Docker palengvina paslaugų perkėlimą tarp serverių