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.

Naudingos Docker komandos

Komanda Ką ji daro
docker compose up -d Paleidžia visus servisus fone
docker compose down Sustabdo ir pašalina visus konteinerius
docker compose logs -f Stebi logus realiu laiku
docker compose pull Atsisiunčia naujausią visų paveikslų versiją
docker compose restart Paleidžia iš naujo visus servisus
docker ps Rodo veikiančius 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: hemmelig # Slaptažodis duomenų bazei
    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ų