Docker Uvodni Vodič: Brzo Pokrenite Kontejnerizaciju Vaše Aplikacije

2/18/2026
6 min read

Docker Uvodni Vodič: Brzo Pokrenite Kontejnerizaciju Vaše Aplikacije

Docker je postao neizostavan dio modernog razvoja i implementacije softvera. Iako su rasprave o Kubernetesu sveprisutne, Docker je i dalje preferirani alat za mnoge tvrtke za izgradnju, testiranje i implementaciju aplikacija. Ovaj će vas članak brzo uvesti u Docker, upoznati vas s njegovim osnovnim konceptima i pružiti praktičan primjer koji će vam pomoći da započnete s kontejnerizacijom vaše aplikacije.

Docker Osnovni Koncepti

Prije nego što započnete s praksom, važno je razumjeti neke od Dockerovih osnovnih koncepata:

  • Slika (Image): Slika je predložak samo za čitanje koji sadrži sve što je potrebno za pokretanje aplikacije: kod, okruženje za izvođenje, sistemske alate, biblioteke i ovisnosti. Slično je slici virtualnog stroja, ali je lakša.

  • Kontejner (Container): Kontejner je pokrenuta instanca stvorena iz slike. To je instanca slike u vremenu izvođenja koja sadrži aplikaciju i sve njezine ovisnosti. Kontejneri su međusobno izolirani i imaju vlastiti datotečni sustav, procese i mrežni prostor.

  • Docker Hub: Docker Hub je javno spremište slika s kojeg možete preuzeti unaprijed izgrađene slike ili prenijeti vlastite slike. Slično je GitHubu, ali je specijaliziran za Docker slike.

  • Dockerfile: Dockerfile je tekstualna datoteka koja sadrži sve upute za izgradnju Docker slike. Pisanjem Dockerfilea možete automatizirati proces stvaranja slike.

  • Docker Compose: Docker Compose je alat za definiranje i pokretanje Docker aplikacija s više kontejnera. Omogućuje vam konfiguriranje usluga aplikacije pomoću YAML datoteke, a zatim pokretanje ili zaustavljanje svih usluga pomoću jedne naredbe.

Docker Instalacija

Prvo morate instalirati Docker. Docker nudi instalacijske pakete za različite operativne sustave. Posjetite Docker službenu web stranicu i slijedite odgovarajuće upute za instalaciju.

Nakon instalacije, možete provjeriti je li Docker ispravno instaliran pokretanjem naredbe docker --version.

Kontejnerizacija jednostavne Python aplikacije

Stvorit ćemo jednostavnu Python aplikaciju i kontejnerizirati je pomoću Dockera.

1. Stvaranje Python aplikacije

Stvorite datoteku pod nazivom app.py sa sljedećim kodom:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Docker!"

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0')

Ova jednostavna Flask aplikacija će vratiti "Hello, Docker!" na korijenskoj putanji /.

2. Stvaranje requirements.txt datoteke

Aplikacija ovisi o Flask biblioteci, stoga moramo stvoriti datoteku requirements.txt za deklariranje tih ovisnosti.

Flask

3. Stvaranje Dockerfilea

Stvorite datoteku pod nazivom Dockerfile i dodajte sljedeći sadržaj:

# Koristite službenu Python sliku kao osnovnu sliku
FROM python:3.9-slim-buster

# Postavite radni direktorij
WORKDIR /app

# Kopirajte requirements.txt datoteku u radni direktorij
COPY requirements.txt .

# Instalirajte ovisnosti
RUN pip install --no-cache-dir -r requirements.txt
```# Kopiranje koda aplikacije u radni direktorij
COPY app.py .

# Izlaganje porta 5000
EXPOSE 5000

# Definiranje naredbe za pokretanje
CMD ["python", "app.py"]

Dockerfile objašnjenje:

  • FROM python:3.9-slim-buster: Specificira baznu sliku kao Python 3.9 u slim verziji.
  • WORKDIR /app: Postavlja radni direktorij unutar kontejnera na /app.
  • COPY requirements.txt .: Kopira requirements.txt datoteku iz trenutnog direktorija u /app direktorij kontejnera.
  • RUN pip install --no-cache-dir -r requirements.txt: Pokreće pip naredbu unutar kontejnera za instalaciju zavisnosti specificiranih u requirements.txt datoteci. --no-cache-dir parametar može smanjiti veličinu slike.
  • COPY app.py .: Kopira app.py datoteku iz trenutnog direktorija u /app direktorij kontejnera.
  • EXPOSE 5000: Deklarira da će kontejner slušati na portu 5000.
  • CMD ["python", "app.py"]: Definira naredbu koja se izvršava pri pokretanju kontejnera.

4. Izgradnja Docker slike

U direktoriju koji sadrži Dockerfile, pokrenite sljedeću naredbu za izgradnju Docker slike:

docker build -t my-python-app .
  • docker build: Naredba za izgradnju slike.
  • -t my-python-app: Dodjeljuje ime slici (my-python-app).
  • .: Specificira direktorij u kojem se nalazi Dockerfile (trenutni direktorij).

Proces izgradnje može potrajati neko vrijeme, ovisno o brzini mreže i veličini zavisnosti.

5. Pokretanje Docker kontejnera

Koristite sljedeću naredbu za pokretanje Docker kontejnera:

docker run -d -p 5000:5000 my-python-app
  • docker run: Naredba za pokretanje kontejnera.
  • -d: Pokreće kontejner u odvojenom načinu rada (radi u pozadini).
  • -p 5000:5000: Mapira port 5000 na hostu na port 5000 u kontejneru.
  • my-python-app: Specificira ime slike koju želite koristiti.

6. Verifikacija aplikacije

U pregledniku posjetite http://localhost:5000, trebali biste vidjeti "Hello, Docker!".

7. Zaustavljanje i brisanje kontejnera

Koristite sljedeću naredbu za zaustavljanje kontejnera:

docker stop 

`` Može se provjeriti pomoću naredbe docker ps.

Koristite sljedeću naredbu za brisanje kontejnera:

docker rm 

Docker Compose Uvod

Ako se vaša aplikacija sastoji od više servisa, možete koristiti Docker Compose za upravljanje njima.

1. Kreiranje docker-compose.yml datoteke

Kreirajte datoteku pod nazivom docker-compose.yml i dodajte sljedeći sadržaj:

version: "3.9"
services:
  web:
    image: my-python-app
    ports:
      - "5000:5000"

docker-compose.yml objašnjenje:* version: "3.9": Specificira verziju Docker Compose datoteke.

  • services: Definira servise aplikacije.
  • web: Definira servis pod nazivom "web".
  • image: my-python-app: Specificira image koji servis koristi.
  • ports: Definira mapiranje portova.

2. Pokretanje Aplikacije

U direktoriju koji sadrži docker-compose.yml datoteku, pokrenite sljedeću naredbu za pokretanje aplikacije:

docker-compose up -d
  • docker-compose up: Naredba za pokretanje aplikacije.
  • -d: Pokreće kontejnere u odvojenom (detached) modu.

3. Zaustavljanje Aplikacije

Koristite sljedeću naredbu za zaustavljanje aplikacije:

docker-compose down

Docker Najbolje Prakse Sigurnosti

Kao što se može vidjeti iz diskusije, sigurnost Docker image-a je važno pitanje. Slijede neke Docker najbolje prakse sigurnosti:

  • Koristite službene image-e: Koristite službene image-e kad god je to moguće, jer su ti image-i obično skenirani i održavani za sigurnost.
  • Skenirajte image-e za ranjivosti: Koristite alate kao što je Trivy za skeniranje poznatih ranjivosti u image-ima i ažurirajte image-e na vrijeme.
  • Koristite princip najmanjih privilegija: Izbjegavajte pokretanje kontejnera kao root korisnik.
  • Ograničite resurse kontejnera: Koristite cgroups za ograničavanje upotrebe CPU-a i memorije kontejnera.
  • Redovno ažurirajte image-e: Održavajte image-e ažurnim kako biste popravili sigurnosne propuste.
  • Koristite alate za sigurnosno skeniranje: Alati poput Snyk, Clair itd. se mogu integrirati u vaš CI/CD proces za automatsko skeniranje ranjivosti image-a.

ZaključakOvaj članak pruža brzi vodič za Docker, pokrivajući ključne koncepte, korake instalacije i jednostavan primjer kontejnerizacije Python aplikacije. Učenjem ovih osnova, možete početi koristiti Docker za izgradnju, testiranje i implementaciju vaših aplikacija. Zapamtite, sigurnost je ključna, uvijek obratite pažnju na sigurnost Docker image-a i poduzmite odgovarajuće mjere za zaštitu vaše aplikacije. Iako je Kubernetes moćan u orkestraciji kontejnera velikih razmjera, Docker je i dalje jednostavno i učinkovito rješenje u mnogim scenarijima. Ovladavanjem Dockerom, bit ćete bolje opremljeni za suočavanje s izazovima modernog razvoja i implementacije softvera.

Published in Technology

You Might Also Like