Vodiči

Šta je Docker? Kontejneri objašnjeni za nekodere

Docker je alat koji pakuje aplikaciju zajedno sa svime što joj treba za rad (ispravnu verziju jezika, biblioteke, sistemske alate i postavke) u standardnu jedinicu zvanu kontejner. Kontejner radi na isti način na laptopu programera, testnom serveru ili cloud hostu, što okončava klasični problem „ali radilo je na mom računaru“. Recept za pravljenje kontejnera je kratak tekstualni fajl zvan Dockerfile.

Zašto je Docker važan kad gradite uz AI

Ako vaša aplikacija ima backend, odnosno API u Pythonu, Node-u, C# ili Javi, mora raditi negdje gdje je instalirano upravo pravo softversko okruženje. Docker je najčešći način da se to ponovi.

  • Deploy backenda. Mnogi hostovi, uključujući Mythex, deployuju backende tako što prave kontejner iz Dockerfile-a. U Mythexu, kada zatražite „C# Web API“ ili „Java backend“, dobijate aplikaciju plus Dockerfile, a objava gradi sliku i deployuje je (API backendi).
  • Napuštanje platforme. Ako izvezete aplikaciju izgrađenu uz AI, Dockerfile znatno olakšava njeno pokretanje na drugom hostu. Pogledajte kako izvesti i samostalno hostovati aplikaciju izgrađenu uz AI.
  • Rad s programerima. Programer koji se pridruži vašem projektu može pokrenuti cijelu aplikaciju jednom ili dvije komande, umjesto da provede dan instalirajući stvari.

Svakodnevna analogija: brodski kontejneri

Prije standardnih brodskih kontejnera, teret se utovarivao komad po komad (vreće, bačve, sanduci), a svaka luka je to radila drugačije. Standardni čelični kontejner promijenio je to: spakujete ga jednom, a bilo koji brod, dizalica, voz ili kamion ga može prevesti, bez obzira šta je unutra.

Docker radi isto za softver:

  • Dockerfile je lista pakovanja i uputstva.
  • Slika je zapečaćen, spakovan kontejner.
  • Pokrenuti kontejner je ta kutija u radu, ovdje na serveru.
  • Docker Engine je dizalica i brod: softver na serveru koji zna kako pokrenuti bilo koji kontejner.

Kako Docker radi

DioŠta je
DockerfileTekstualni fajl s korak-po-korak uputstvima za pravljenje slike.
Slika (image)Paket samo za čitanje: osnove operativnog sistema, runtime, biblioteke i vaš kod.
KontejnerPokrenuta instanca slike, izolovana od drugih aplikacija na istoj mašini.
RegistarMjesto za čuvanje i dijeljenje slika, poput Docker Huba ili registra cloud provajdera.
Docker EnginePozadinski servis koji pravi slike i pokreće kontejnere. Besplatan i otvorenog koda.
Docker DesktopAplikacija za Mac, Windows i Linux koja spaja engine s grafičkim interfejsom.

Kontejneri naspram virtuelnih mašina: virtuelna mašina se pretvara da je cijeli zaseban računar s vlastitim operativnim sistemom, pa je teška i sporo se pokreće. Kontejner dijeli kernel operativnog sistema domaćina i izoluje samo aplikaciju i njene fajlove, pa se obično pokrene za nekoliko sekundi i troši mnogo manje memorije. Mnogo kontejnera može raditi jedan pored drugog na istom serveru.

Praktičan primjer: mali Python API

Recimo da je vaš AI alat napravio 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"]

Linija po liniju:

LinijaŠta radi
FROM python:3.12-slimPočinje od zvanične slike koja već ima Python 3.12 instaliran.
WORKDIR /appRadi unutar foldera /app u kontejneru.
COPY requirements.txt . i RUN pip install ...Kopira listu biblioteka i instalira ih.
COPY . .Kopira kod same aplikacije.
EXPOSE 8000Bilježi da aplikacija sluša na portu 8000.
CMD [...]Komanda koja pokreće web server kada se kontejner pokrene.

Jednostavno rečeno: „Počni 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 komande:

docker build -t booking-api .
docker run -p 8000:8000 booking-api

Prva gradi sliku i imenuje je booking-api. Druga pokreće kontejner i povezuje port 8000 na mašini s portom 8000 unutar kontejnera. API sada radi na isti način kao na bilo kojem serveru koji ima Docker.

Primijetite šta nije u slici: lozinke i API ključevi. Oni se prosljeđuju kada se kontejner pokrene, kao environment varijable, pa ista slika može raditi u testiranju i produkciji s različitim postavkama.

Ključni pojmovi

PojamZnačenje
KontejnerIzolovan, pokrenut paket aplikacije i njenih zavisnosti.
Slika (image)Šablon iz kojeg se kontejner pokreće.
Bazna slikaPolazna tačka u FROM liniji Dockerfile-a, poput python:3.12-slim ili node:22.
Sloj (layer)Svaki korak Dockerfile-a dodaje keširani sloj, što ubrzava ponovna gradnje.
Mapiranje portaPovezivanje porta na domaćinu s portom unutar kontejnera.
VolumePohrana koja preživi kada se kontejner zamijeni. Sami kontejneri su potrošni.
Docker ComposeFajl koji opisuje više kontejnera koji rade zajedno, poput API-ja i baze podataka.
KubernetesSistem za pokretanje mnogo kontejnera na mnogo servera. Većina malih aplikacija ga ne treba.

Česte zablude

  • „Docker je virtuelna mašina.“ Lakši je: kontejneri dijele kernel domaćina.
  • „Podaci sačuvani unutar kontejnera su sigurni.“ Kontejneri su namijenjeni da se odbace i zamijene. Sve što mora trajati, poput korisničkih podataka i uploadovanih fajlova, pripada bazi podataka, fajl pohrani ili volumenu.
  • „Stavljanje tajni u Dockerfile je u redu jer je privatan.“ Slike se dijele i guraju u registre. Prosljeđujte tajne u trenutku pokretanja.
  • „Docker čini aplikaciju sigurnom.“ Izolacija pomaže, ali kontejner s zastarjelim softverom i slabim postavkama je i dalje ranjiv.
  • „Svaka aplikacija treba Docker.“ Statički sajt ili jednostavan frontend se obično hostuje kao obični fajlovi, bez ikakvog kontejnera.
  • „Docker Desktop je besplatan za sve.“ Engine je besplatan; Docker Desktop zahtijeva plaćenu pretplatu za veće kompanije, prema Dockerovim uslovima.

Šta tražiti od vašeg AI alata za izradu

  • „Treba li ova aplikacija Dockerfile? Ako da, objasni svaku liniju običnim jezikom.“
  • „Koristi malu, zvaničnu baznu sliku i zakači verziju jezika.“
  • „Drži tajne van slike. Čitaj ih iz environment varijabli u trenutku pokretanja.“
  • „Pobrini se da se uploadovani fajlovi i podaci čuvaju u bazi podataka ili fajl pohrani, a ne unutar kontejnera.“
  • „Dodaj Docker Compose fajl da programer može pokrenuti frontend, API i bazu lokalno jednom komandom.“
  • „Dodaj health-check endpoint da host može provjeriti je li API aktivan.“

Docker u Mythexu

Ne morate instalirati niti pokretati Docker da biste koristili Mythex. Vaš projekat radi u privatnom cloud sandbox okruženju, a kada zatražite backend koji treba kontejner, na primjer C#, Javu ili prilagođeni Node ili Python servis, Mythex napiše aplikaciju plus Dockerfile, pregleda je u sandboxu i deployuje kada objavite, bez ikakvog postavljanja hostinga (kako se bira tehnologija). Na Pro planu možete izvesti projekat ili ga sinhronizovati s GitHubom i ponijeti Dockerfile sa sobom. Za to kako se backendi i frontendi uklapaju, pogledajte frontend vs backend.

Pitanja

Šta je Docker jednostavnim riječima?

Docker je alat koji pakuje aplikaciju zajedno sa svim što joj treba za rad, uključujući programsko okruženje, biblioteke i postavke, u standardnu jedinicu zvanu kontejner. Kontejner radi na isti način na laptopu, testnom serveru ili cloud hostu.

Koja je razlika između Docker slike i kontejnera?

Slika je spakovan šablon samo za čitanje: aplikacija i njene zavisnosti, napravljeni iz Dockerfile-a. Kontejner je pokrenuta kopija te slike. Iz jedne slike možete pokrenuti mnogo kontejnera.

Je li Docker virtuelna mašina?

Nije. Virtuelna mašina emulira cijeli računar s vlastitim operativnim sistemom. Kontejneri dijele operativni sistem domaćina i izoluju samo aplikaciju, pa se brže pokreću i troše manje memorije.

Je li Docker besplatan?

Docker Engine, jezgro koje pokreće kontejnere, besplatan je i otvorenog koda. Od septembra 2026, Dockerovi uslovi kažu da je Docker Desktop besplatan za nekomercijalne projekte otvorenog koda i za kompanije s manje od 250 zaposlenih i manje od 10 miliona dolara godišnjeg prihoda; veće kompanije trebaju plaćenu pretplatu.

Treba li mi učiti Docker da bih gradio aplikaciju uz AI?

Obično ne. Mnogi AI alati za izradu brinu o kontejnerima umjesto vas. Korisno je znati šta je Dockerfile, da biste razumjeli kako je backend spakovan i da biste ga mogli pokrenuti ili hostovati drugdje ako izvezete aplikaciju.

Mythex · Pricing · Izradite bilo šta uz AI · Šabloni za web stranice i aplikacije · Mythex u poređenju · Rječnik izrade aplikacija uz AI · Besplatni alati za izradu aplikacija uz AI · English

English አማርኛ العربية Български বাংলা Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)