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.
Užduotis 1 – Nginx nustatymas su Docker Compose
Sukurkite docker-compose.yml, kuris paleidžia Nginx žiniatinklio serverį:
- Sukurkite naują aplanką ir sukurkite failą
docker-compose.yml - Apibrėžkite paslaugą su
image: nginx:latest80 prievadu - Paleiskite
docker compose up -d - Apsilankykite
http://localhostnaršyklėje
Užduotis 2 – Pridėti paslaugą
Papildykite docker-compose.yml iš 1 užduoties papildoma paslauga. Pavyzdžiui:
- Uptime Kuma 3001 prievadu
- Grafana 3000 prievadu
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ų