Što je Docker? Kontejneri objašnjeni za nestručnjake
Docker je alat koji aplikaciju pakira zajedno sa svim što joj treba za rad — ispravnom verzijom jezika, bibliotekama, sistemskim alatima i postavkama — u standardnu jedinicu zvanu kontejner (container). Kontejner radi jednako na programerovu laptopu, na testnom serveru ili u cloud hostingu, pa više nema klasičnog problema „ali na mom računalu radi”. Recept za izradu kontejnera je kratka tekstualna datoteka zvana Dockerfile.
Zašto je Docker važan kad gradite uz AI
Ako vaša aplikacija ima backend — API u Pythonu, Nodeu, C# ili Javi — mora raditi negdje gdje je instaliran točno pravi softver. Docker je najčešći način da se to ponovljivo postigne.
- Objava backenda. Mnogi hostovi, uključujući Mythex, objavljuju backend tako da iz Dockerfilea izgrade kontejner. U Mythexu zahtjev za „C# Web API” ili „Java backend” daje vam aplikaciju plus Dockerfile, a Objava gradi sliku i objavljuje je (API backendi).
- Napuštanje platforme. Ako izvezete aplikaciju izrađenu uz AI, Dockerfile znatno olakšava pokretanje na drugom hostu. Pogledajte kako izvesti i samostalno hostati aplikaciju izrađenu uz AI.
- Rad s programerima. Programer koji se pridruži vašem projektu može pokrenuti cijelu aplikaciju s jednom ili dvije naredbe umjesto da provede dan instalirajući stvari.
Svakodnevna analogija: kontejneri za brodove
Prije standardnih brodskih kontejnera teret se utovarivao komad po komad — vreće, bačve, sanduci — i svaka luka je to radila drukčije. Standardni čelični kontejner to je promijenio: spakirate ga jednom, a svaki brod, dizalica, vlak ili kamion može ga premjestiti bez brige o tome što je unutra.
Docker radi isto za softver:
- Dockerfile je popis za pakiranje i upute.
- Slika (image) je zapečaćen, spakiran kontejner.
- Pokrenuti kontejner je ta kutija u radu na brodu — ovdje, na serveru.
- Docker Engine je dizalica i brod: softver na serveru koji zna pokrenuti bilo koji kontejner.
Kako Docker radi
| Dio | Što je to |
|---|---|
| Dockerfile | Tekstualna datoteka s korak-po-korak uputama za izradu slike. |
| Slika (image) | Paket samo za čitanje: osnove operacijskog sustava, runtime, biblioteke i vaš kod. |
| Kontejner | Pokrenuta instanca slike, izolirana od drugih aplikacija na istom računalu. |
| Registar | Mjesto za pohranu i dijeljenje slika, poput Docker Hubu ili registra cloud pružatelja. |
| Docker Engine | Pozadinska usluga koja gradi slike i pokreće kontejnere. Besplatan i otvorenog koda. |
| Docker Desktop | Aplikacija za Mac, Windows i Linux koja spaja engine s grafičkim sučeljem. |
Kontejneri naspram virtualnih strojeva: virtualni stroj se predstavlja kao cijelo zasebno računalo sa svojim operacijskim sustavom, pa je težak i sporo se pokreće. Kontejner dijeli jezgru operacijskog sustava domaćina i izolira samo aplikaciju i njezine datoteke, pa se obično pokreće u sekundama i troši znatno manje memorije. Mnogo kontejnera može raditi jedan pored drugoga na istom serveru.
Primjer: mali Python API
Recimo da je vaš AI alat izradio Python FastAPI backend za aplikaciju za rezervacije. Dockerfile bi mogao izgledati ovako:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Redak po redak:
| Redak | Što radi |
|---|---|
FROM python:3.12-slim | Kreće od službene slike koja već ima instaliran Python 3.12. |
WORKDIR /app | Radi unutar mape /app u kontejneru. |
COPY requirements.txt . i RUN pip install ... | Kopira popis biblioteka i instalira ih. |
COPY . . | Kopira vlastiti kod aplikacije. |
EXPOSE 8000 | Bilježi da aplikacija sluša na portu 8000. |
CMD [...] | Naredba koja pokreće web server kad se kontejner pokrene. |
Jednostavnim riječima: „Kreni s Pythonom 3.12. Instaliraj biblioteke navedene u requirements.txt. Kopiraj kod. Pokreni web server na portu 8000.”
Programer (ili hosting platforma) zatim pokreće dvije naredbe:
docker build -t booking-api .
docker run -p 8000:8000 booking-api
Prva gradi sliku i naziva je booking-api. Druga pokreće kontejner i povezuje port 8000 na računalu s portom 8000 unutar kontejnera. API sada radi — na isti način kako će raditi na bilo kojem serveru s Dockerom.
Primijetite što nije u slici: lozinke i API ključevi. Oni se predaju pri pokretanju kontejnera kao varijable okruženja, pa ista slika može raditi u testiranju i produkciji s različitim postavkama.
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| Kontejner | Izolirani, pokrenuti paket aplikacije i njezinih ovisnosti. |
| Slika (image) | Predložak iz kojeg se kontejner pokreće. |
| Osnovna slika (base image) | Polazna točka u retku FROM u Dockerfileu, primjerice python:3.12-slim ili node:22. |
| Sloj (layer) | Svaki korak Dockerfilea dodaje predmemorirani sloj, što ponovne izgradnje čini bržima. |
| Mapiranje porta | Povezivanje porta na domaćinu s portom unutar kontejnera. |
| Volumen | Pohrana koja preživi zamjenu kontejnera. Sami kontejneri su jednokratni. |
| Docker Compose | Datoteka koja opisuje više kontejnera koji rade zajedno, primjerice API i bazu podataka. |
| Kubernetes | Sustav za pokretanje mnogo kontejnera na mnogo servera. Većina malih aplikacija ga ne treba. |
Česte zablude
- „Docker je virtualni stroj.” Lakši je: kontejneri dijele jezgru domaćina.
- „Podaci spremljeni unutar kontejnera su sigurni.” Kontejneri su namijenjeni za odbacivanje i zamjenu. Sve što mora trajati — korisnički podaci, prijenosi datoteka — pripada bazi podataka, pohrani datoteka ili volumenu.
- „Stavljanje tajni u Dockerfile je u redu jer je privatno.” Slike se dijele i guraju u registre. Tajne predajte pri izvođenju.
- „Docker čini aplikaciju sigurnom.” Izolacija pomaže, ali kontejner sa zastarjelim softverom i slabim postavkama i dalje je ranjiv.
- „Svaka aplikacija treba Docker.” Statična stranica ili jednostavan frontend obično se hostaju kao obične datoteke, bez ikakvog kontejnera.
- „Docker Desktop je besplatan za sve.” Engine je besplatan; prema uvjetima Dockera, Docker Desktop za veće tvrtke zahtijeva plaćenu pretplatu.
Što pitati svog AI alata za izradu
- „Treba li ova aplikacija Dockerfile? Ako da, objasni svaki redak jednostavnim jezikom.”
- „Koristi malu, službenu osnovnu sliku i fiksiraj verziju jezika.”
- „Drži tajne izvan slike. Čitaj ih iz varijabli okruženja pri izvođenju.”
- „Pobrini se da se prijenosi i podaci spremaju u bazu ili pohranu datoteka, a ne unutar kontejnera.”
- „Dodaj Docker Compose datoteku da programer može lokalno pokrenuti frontend, API i bazu jednom naredbom.”
- „Dodaj health-check endpoint da host može provjeriti je li API aktivan.”
Docker u Mythexu
Za korištenje Mythexa ne morate instalirati niti pokretati Docker. Vaš projekt radi u privatnom cloud sandboxu, a kad zatražite backend koji treba kontejner — primjerice C#, Javu ili prilagođeni Node ili Python servis — Mythex napiše aplikaciju plus Dockerfile, prikaže je u sandboxu i objavi je kad objavite, bez ikakvog postavljanja hostinga (kako se bira tehnologija). Na Pro planu možete izvesti projekt ili ga sinkronizirati s GitHubom i ponijeti Dockerfile sa sobom. Za to kako se backend i frontend uklapaju pogledajte frontend naspram backenda.
Pitanja
Što je Docker jednostavnim riječima?
Docker je alat koji aplikaciju pakira zajedno sa svime što joj treba za rad — runtimeom jezika, bibliotekama i postavkama — u standardnu jedinicu zvanu kontejner. Kontejner radi jednako na laptopu, testnom serveru ili cloud hostu.
Koja je razlika između Docker slike i kontejnera?
Slika je spakirani predložak samo za čitanje: aplikacija i njezine ovisnosti, izgrađene iz Dockerfilea. Kontejner je pokrenuta kopija te slike. Iz jedne slike možete pokrenuti mnogo kontejnera.
Je li Docker virtualni stroj?
Nije. Virtualni stroj emulira cijelo računalo sa svojim operacijskim sustavom. Kontejneri dijele jezgru operacijskog sustava domaćina i izoliraju samo aplikaciju, pa se brže pokreću i troše manje memorije.
Je li Docker besplatan?
Docker Engine, jezgra koja pokreće kontejnere, besplatan je i otvorenog koda. Prema uvjetima Dockera iz rujna 2026., Docker Desktop je besplatan za nekomercijalne projekte otvorenog koda i za tvrtke s manje od 250 zaposlenika i godišnjim prihodom manjim od 10 milijuna dolara; veće tvrtke trebaju plaćenu pretplatu.
Moram li učiti Docker da bih izradio aplikaciju uz AI?
Obično ne. Mnogi AI alati za izradu rješavaju kontejnere umjesto vas. Korisno je znati što je Dockerfile kako biste razumjeli kako je backend spakiran i da ga možete pokrenuti ili hostati drugdje ako ga izvezete.