Upravljanje kontejnerima je ključna komponenta modernog razvoja i implementacije aplikacija. Uz sve više distribuiran softverski ekosistem, koji ima efikasne alate kao što su Docker Compose olakšava upravljanje više kontejnera na jednostavan i organiziran način.
U ovom članku ćemo proći kroz sve što trebate znati o alatu, od njegove instalacije i osnovne upotrebe do naprednih konfiguracija, umrežavanja, volumena i skaliranja usluge. Ako želite optimizirati implementaciju svoje aplikacije s više kontejnera, ovdje ćete pronaći sve detaljne informacije korak po korak.
Šta je Docker Compose?
Docker Compose To je alat koji vam omogućava da definirate, konfigurirate i upravljate aplikacijama koje se sastoje od više kontejnera kao jedne jedinice. Koristeći YAML konfiguracijski fajl, možete definirati usluge koje čine vašu aplikaciju i upravljati njima jednostavnim naredbama.
Među glavnim prednostima koje nudi alat su mogućnost da se olakša orkestracija kontejnera, upravljanje varijablama okruženja, kreiranje prilagođene mreže i skaliranje usluge bez potrebe za složenim ručnim konfiguracijama. Za više informacija o sličnim alatima, možete posjetiti članak na otvorite CBR fajlove.
Instaliranje Docker Compose
U zavisnosti od operativnog sistema, instalacija Docker Compose može neznatno varirati:
- Windows i macOS: se automatski instalira sa DockerDesktop, tako da nije potrebna dodatna instalacija.
- Linux: Mora se preuzeti ručno pokretanjem sljedeće naredbe:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.0.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Nakon preuzimanja, dozvole se primjenjuju sa:
sudo chmod +x /usr/local/bin/docker-compose
Da biste potvrdili instalaciju, jednostavno pokrenite:
docker-compose --version
Kreiranje datoteke docker-compose.yml
datoteku docker-compose.yml
je srž konfiguracije. Definiše usluge i njihove karakteristike. Osnovni primjer konfiguracije bi bio:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
U ovom primjeru su definirane dvije usluge:
- veb: Usluga koja koristi službenu sliku Nginxa i otkriva port 80.
- db: MySQL usluga sa varijablom okruženja za definiranje lozinke korisnika korijen.
Osnovne naredbe Docker Compose
Nakon što je YAML datoteka konfigurirana, Docker Compose omogućava vam upravljanje aplikacijom jednostavnim naredbama:
docker-compose up
: Pokreće i pokreće sve usluge definisane udocker-compose.yml
.docker-compose down
: Zaustavlja i uklanja sve uključene kontejnere.docker-compose ps
: Lista aktivnih usluga.docker-compose logs
: Prikazuje zapise koje generira svaki kontejner.
Za pokretanje usluga u pozadini dodaje se zastavica -d
:
docker-compose up -d
Napredna upotreba Docker Compose
Mreže i volumeni
Pomoću ovog alata možete definirati prilagođene mreže i volumene kako biste optimizirali komunikaciju kontejnera i postojanost podataka. Primjer sa volumenima bi bio:
version: '3.8'
services:
web:
image: nginx:latest
volumes:
- web_data:/var/www/html
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
volumes:
web_data:
db_data:
Sa ovom konfiguracijom, obje usluge imaju trajno skladištenje, što je ključno da se osigura da se podaci ne izgube prilikom ponovnog pokretanja kontejnera. Dodatno, upotreba volumena je kritična za efikasno upravljanje višestrukim kontejnerima.
Skaliranje usluge
Ako trebate povećati broj instanci usluge, možete je jednostavno skalirati pomoću:
docker-compose up -d --scale web=3
Ovo će stvoriti tri instance usluge web
, korisno za aplikacije koje trebaju balansiranje opterećenja. Ovaj mehanizam je vrlo sličan onome što se može implementirati u drugim razvojnim okruženjima, kao što je spomenuto u poređenju kamera na gadžetima.
Docker Compose je moćan alat koji pojednostavljuje upravljanje aplikacijama sa više kontejnera, omogućavajući vam da efikasno definišete, konfigurišete i skalirate usluge. Njegova jednostavnost upotrebe i kompatibilnost sa razvojnim i proizvodnim okruženjima čine ga obaveznim izborom za programere i administratore sistema. Podijelite ove informacije i pomozite drugim korisnicima da saznaju više o platformi..