Инсталација и коришћење Docker Compose-а на Rocky Linux 8


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 u docker-compose.yml datoteci.
  • docker-compose restart: Ponovo pokreće sve kontejnere definisane u docker-compose.yml datoteci.
  • docker-compose logs: Prikazuje logove iz kontejnera.
  • docker-compose build: Gradi slike za sve servise definisane u docker-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.