Postavljanje i upotreba Docker Compose-a na Rocky Linux 8
Uvod
Docker Compose predstavlja izvanredan alat koji omogućava korisnicima da definišu i upravljaju višestrukim Docker kontejnerima unutar jedinstvene konfiguracione datoteke. Ova funkcionalnost je od suštinskog značaja za kompleksne Docker projekte, posebno u situacijama kada se radi o aplikacijama sa više komponenti i međusobno povezanim kontejnerima. Rocky Linux 8, kao stabilna i pouzdana Linux distribucija, pruža idealno okruženje za rad sa Docker-om, a samim tim i sa Docker Compose-om.
Ovaj detaljni vodič će vas korak po korak provesti kroz proces instalacije i konfiguracije Docker Compose-a na Rocky Linux 8. Uz praktične primere, brzo ćete se upoznati sa svim ključnim aspektima i mogućnostima ovog alata.
1. Instalacija Docker-a
Pre nego što pristupimo instalaciji Docker Compose-a, neophodno je da na vašem sistemu bude instaliran Docker. Ako ga još nemate, možete ga instalirati koristeći sledeću naredbu:
sudo dnf install docker-ce docker-ce-cli containerd.io
Nakon završetka instalacije, aktivirajte Docker daemon kako biste omogućili korišćenje Docker-a:
sudo systemctl enable docker
sudo systemctl start docker
2. Instalacija Docker Compose-a
Proces instalacije Docker Compose-a je relativno jednostavan i može se obaviti putem komandne linije.
sudo dnf install python3 -y
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3. Verifikacija instalacije
Po završetku instalacije, proverite da li je Docker Compose uspešno instaliran pomoću sledeće naredbe:
docker-compose --version
4. Osnovni primer upotrebe
U ovom delu ćemo demonstrirati osnovnu upotrebu Docker Compose-a. Prvo, kreiraćemo novi direktorijum pod nazivom my-app
i u njega ćemo smestiti datoteku docker-compose.yml
.
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
Ova konfiguraciona datoteka definiše jedan servis, web
, koji koristi nginx:latest
sliku i preusmerava port 80 iz Docker kontejnera na port 80 na host mašini.
Pokrenite aplikaciju koristeći sledeću naredbu:
docker-compose up -d
Ova komanda će kreirati i pokrenuti kontejner u pozadini. Možete proveriti da li je aplikacija dostupna u vašem veb pregledaču na adresi http://localhost
.
5. Detaljna konfiguracija
Docker Compose datoteka podržava veliki broj opcija, omogućavajući detaljniju definiciju okruženja.
5.1. Definicija više servisa
Unutar jedne Docker Compose datoteke možete definisati više servisa. Na primer, možete dodati servis za bazu podataka:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: "mypassword"
ports:
- "3306:3306"
Ovo definiše dva servisa, web
i db
, gde db
koristi mysql:latest
sliku i postavlja lozinku za korisničko ime root
na mypassword
.
5.2. Zavisnosti između servisa
Docker Compose omogućava definisanje zavisnosti između servisa. Na primer, možete definisati da web
servis mora čekati da se db
servis pokrene:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
depends_on:
- db
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: "mypassword"
ports:
- "3306:3306"
Ovo specificira da će Docker Compose prvo pokrenuti db
servis, a tek onda web
servis.
5.3. Mreže
Docker Compose podržava definisanje mreža unutar docker-compose.yml
datoteke.
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
networks:
- my-net
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: "mypassword"
ports:
- "3306:3306"
networks:
- my-net
networks:
my-net:
driver: bridge
Ovaj primer definiše mrežu my-net
tipa bridge
i povezuje oba servisa, web
i db
, sa tom mrežom.
6. Komandna linija
Pored docker-compose up
, postoji niz drugih komandi koje možete koristiti za upravljanje vašim Docker Compose projektima:
docker-compose down
: Zaustavlja i uklanja sve kontejnere, mreže i volumene definisane udocker-compose.yml
datoteci.docker-compose restart
: Ponovo pokreće sve kontejnere definisane udocker-compose.yml
datoteci.docker-compose logs
: Prikazuje logove iz kontejnera.docker-compose build
: Gradi slike za sve servise definisane udocker-compose.yml
datoteci.docker-compose run
: Pokreće komandu u jednom kontejneru.docker-compose scale
: Definiše broj instanci za svaki servis.
7. Dodatne mogućnosti
Docker Compose je moćan alat koji omogućava:
- Upravljanje zavisnostima: Definišite zavisnosti između različitih servisa.
- Definisanje okruženja: Konfigurišite okruženja za svaki servis.
- Mrežno povezivanje: Kreirajte i upravljajte mrežama između servisa.
- Upravljanje volumenima: Definišite i povežite volumene sa kontejnerima.
- Verzioniranje: Verzionirajte
docker-compose.yml
datoteku kako biste pratili promene.
Zaključak
Docker Compose je neophodan alat za sve koji žele da koriste Docker za kompleksnije projekte. Omogućava jednostavno upravljanje višestrukim kontejnerima, definisanje zavisnosti, mrežno povezivanje i upravljanje volumenima. Ovaj vodič je pružio sveobuhvatan pregled instalacije, konfiguracije i osnovnih primera upotrebe Docker Compose-a, dajući vam temelj za dalje istraživanje i eksperimentisanje.
Često postavljana pitanja
1. Šta je Docker Compose? Docker Compose je alat koji vam omogućava da definišete i upravljate višestrukim Docker kontejnerima u jednoj konfiguracionoj datoteci.
2. Zašto koristiti Docker Compose? Docker Compose pojednostavljuje upravljanje složenijim Docker projektima, naročito kada je reč o višekomponentnim aplikacijama sa međusobno zavisnim kontejnerima.
3. Šta je docker-compose.yml
datoteka? docker-compose.yml
datoteka je ključna datoteka u Docker Compose projektu. Ona sadrži definicije servisa, zavisnosti, mreža, volumena i drugih parametara.
4. Kako pokrenuti aplikaciju definisanu u docker-compose.yml
datoteci? Da biste pokrenuli aplikaciju, koristite komandu docker-compose up -d
.
5. Kako zaustaviti i ukloniti sve kontejnere? Koristite komandu docker-compose down
.
6. Kako pristupiti logovima kontejnera? Koristite komandu docker-compose logs
.
7. Kako izgraditi slike za sve servise? Koristite komandu docker-compose build
.
8. Kako pokrenuti komandu unutar jednog kontejnera? Koristite komandu docker-compose run
.
9. Kako definisati broj instanci za svaki servis? Koristite komandu docker-compose scale
.
10. Gde mogu pronaći više informacija o Docker Compose-u? Dokumentacija za Docker Compose dostupna je na ovom linku.