Čo je Docker? Kontajnery jednoducho vysvetlené pre nevývojárov
Docker je nástroj, ktorý zabalí aplikáciu spolu so všetkým, čo na beh potrebuje – správnou verziou jazyka, knižnicami, systémovými nástrojmi a nastaveniami – do štandardnej jednotky nazývanej kontajner. Kontajner beží rovnako na notebooku vývojára, testovacom serveri alebo v cloude, čím končí klasický problém „ale na mojom počítači to fungovalo“. Recept na zostavenie kontajnera je krátky textový súbor nazývaný Dockerfile.
Prečo Docker záleží, keď stavate s AI
Ak má vaša aplikácia backend – API v Pythone, Node, C# alebo Jave – musí bežať niekde, kde je nainštalovaný presne správny softvér. Docker je najbežnejší spôsob, ako to urobiť opakovateľne.
- Nasadzovanie backendov. Mnohé hostingy vrátane Mythex nasadzujú backendy tak, že zostavia kontajner z Dockerfile. V Mythex si vypýtate „C# Web API“ alebo „Java backend“ a dostanete aplikáciu plus Dockerfile; Publish zostaví obraz a nasadí ho (API backendy).
- Odchod z platformy. Ak exportujete aplikáciu vytvorenú AI, Dockerfile výrazne uľahčí jej spustenie na inom hostingu. Pozrite ako exportovať a hostovať vlastne aplikáciu vytvorenú AI.
- Spolupráca s vývojármi. Vývojár, ktorý sa pridá k vášmu projektu, dokáže spustiť celú aplikáciu jedným alebo dvoma príkazmi namiesto dňa inštalovania vecí.
Každodenná analógia: lodné kontajnery
Pred štandardnými lodnými kontajnermi sa náklad nakladal kus po kuse – vrecia, sudy, debny – a každý prístav to riešil inak. Štandardný oceľový kontajner to zmenil: zabalíte ho raz a ktorákoľvek loď, žeriav, vlak alebo kamión ho môže presunúť bez ohľadu na to, čo je vnútri.
Docker robí to isté pre softvér:
- Dockerfile je baliaci zoznam a návod.
- Obraz je zapečatený, zabalený kontajner.
- Bežiaci kontajner je tá debna, ktorá je v prevádzke na lodi – tu na serveri.
- Docker Engine je žeriav a loď: softvér na serveri, ktorý vie spustiť ľubovoľný kontajner.
Ako Docker funguje
| Súčasť | Čo to je |
|---|---|
| Dockerfile | Textový súbor s krok-za-krokom inštrukciami na zostavenie obrazu. |
| Obraz (image) | Balík len na čítanie: základy operačného systému, runtime, knižnice a váš kód. |
| Kontajner | Bežiaca inštancia obrazu, izolovaná od ostatných aplikácií na rovnakom stroji. |
| Register | Miesto na ukladanie a zdieľanie obrazov, napríklad Docker Hub alebo register cloudového poskytovateľa. |
| Docker Engine | Služba na pozadí, ktorá zostavuje obrazy a spúšťa kontajnery. Zadarmo a open source. |
| Docker Desktop | Aplikácia pre Mac, Windows a Linux, ktorá obsahuje engine s grafickým rozhraním. |
Kontajnery vs virtuálne počítače: virtuálny počítač sa tvári ako celý samostatný počítač s vlastným operačným systémom, takže je ťažký a pomaly sa spúšťa. Kontajner zdieľa jadro operačného systému hostiteľa a izoluje len aplikáciu a jej súbory, takže sa zvyčajne spustí za pár sekúnd a využíva oveľa menej pamäte. Mnoho kontajnerov môže bežať vedľa seba na jednom serveri.
Praktický príklad: malé API v Pythone
Predstavte si, že váš nástroj s AI vytvoril backend v Pythone FastAPI pre aplikáciu na rezervácie. Dockerfile môže vyzerať takto:
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"]
Riadok po riadku:
| Riadok | Čo robí |
|---|---|
FROM python:3.12-slim | Začne z oficiálneho obrazu, v ktorom je už nainštalovaný Python 3.12. |
WORKDIR /app | Pracuje v priečinku /app v kontajneri. |
COPY requirements.txt . a RUN pip install ... | Skopíruje zoznam knižníc a nainštaluje ich. |
COPY . . | Skopíruje kód samotnej aplikácie. |
EXPOSE 8000 | Poznamenáva, že aplikácia počúva na porte 8000. |
CMD [...] | Príkaz, ktorý spustí webový server pri spustení kontajnera. |
Jednoducho povedané: „Začni s Pythonom 3.12. Nainštaluj knižnice uvedené v requirements.txt. Skopíruj kód. Spusti webový server na porte 8000.“
Vývojár (alebo hostingová platforma) potom spustí dva príkazy:
docker build -t booking-api .
docker run -p 8000:8000 booking-api
Prvý zostaví obraz a pomenuje ho booking-api. Druhý spustí kontajner a prepojí port 8000 na stroji s portom 8000 vnútri kontajnera. API teraz beží rovnako, ako bude bežať na ktoromkoľvek serveri s Dockerom.
Všimnite si, čo v obraze nie je: heslá a API kľúče. Tie sa odovzdajú pri spustení kontajnera ako premenné prostredia, aby mohol ten istý obraz bežať v testovaní aj v produkcii s rôznymi nastaveniami.
Kľúčové pojmy
| Pojem | Význam |
|---|---|
| Kontajner | Izolovaný, bežiaci balík aplikácie a jej závislostí. |
| Obraz (image) | Šablóna, z ktorej sa kontajner spúšťa. |
| Základný obraz (base image) | Východiskový bod v riadku FROM Dockerfile, napríklad python:3.12-slim alebo node:22. |
| Vrstva (layer) | Každý krok Dockerfile pridá vrstvu do cache, čo zrýchľuje opätovné zostavenie. |
| Mapovanie portov | Prepojenie portu na hostiteľovi s portom vnútri kontajnera. |
| Volume | Úložisko, ktoré prežije výmenu kontajnera. Samotné kontajnery sú jednorazové. |
| Docker Compose | Súbor, ktorý popisuje viac kontajnerov bežiacich spolu, napríklad API plus databázu. |
| Kubernetes | Systém na spúšťanie mnohých kontajnerov na mnohých serveroch. Väčšina malých aplikácií ho nepotrebuje. |
Bežné omyly
- „Docker je virtuálny počítač.“ Je ľahší: kontajnery zdieľajú jadro hostiteľa.
- „Dáta uložené vnútri kontajnera sú v bezpečí.“ Kontajnery sú určené na to, aby sa zahodili a nahradili. Všetko, čo musí pretrvať – dáta používateľov, nahrané súbory – patrí do databázy, úložiska súborov alebo volume.
- „Dať tajomstvá do Dockerfile je v poriadku, lebo je to súkromné.“ Obrazy sa zdieľajú a nahrávajú do registrov. Tajomstvá odovzdávajte až pri spustení.
- „Docker robí aplikáciu bezpečnou.“ Izolácia pomáha, ale kontajner s neaktuálnym softvérom a slabými nastaveniami je stále zraniteľný.
- „Každá aplikácia potrebuje Docker.“ Statická stránka alebo jednoduchý frontend sa zvyčajne hostuje ako obyčajné súbory, bez kontajnera.
- „Docker Desktop je zadarmo pre každého.“ Engine je zadarmo; Docker Desktop podľa podmienok Dockeru vyžaduje platené predplatné pre väčšie firmy.
Čo požiadať od nástroja na tvorbu aplikácií
- „Potrebuje táto aplikácia Dockerfile? Ak áno, vysvetli každý riadok jednoducho.“
- „Použi malý, oficiálny základný obraz a pripni verziu jazyka.“
- „Nedávaj tajomstvá do obrazu. Načítaj ich z premenných prostredia pri spustení.“
- „Uisti sa, že nahraté súbory a dáta sú uložené v databáze alebo úložisku súborov, nie vnútri kontajnera.“
- „Pridaj súbor Docker Compose, aby vývojár mohol spustiť frontend, API a databázu lokálne jediným príkazom.“
- „Pridaj endpoint na kontrolu zdravia (health check), aby hostiteľ vedel, či API beží.“
Docker v Mythex
Na používanie Mythex nepotrebujete Docker inštalovať ani spúšťať. Váš projekt beží v súkromnom cloudovom sandboxe a keď si vypýtate backend, ktorý potrebuje kontajner – napríklad C#, Javu alebo vlastnú službu v Node alebo Pythone – Mythex napíše aplikáciu plus Dockerfile, zobrazí ju v sandboxe a pri publikovaní ju nasadí bez akéhokoľvek nastavovania hostingu (ako sa vyberá technológia). V Pro môžete projekt exportovať alebo synchronizovať s GitHub a Dockerfile si vziať so sebou. Ako spolu súvisia backend a frontend, pozrite frontend vs backend.
Otázky
Čo je Docker jednoducho povedané?
Docker je nástroj, ktorý zabalí aplikáciu spolu so všetkým, čo na beh potrebuje – runtime jazyka, knižnice a nastavenia – do štandardnej jednotky nazývanej kontajner. Kontajner beží rovnako na notebooku, testovacom serveri alebo v cloude.
Aký je rozdiel medzi Docker obrazom a kontajnerom?
Obraz je zabalená, len na čítanie určená šablóna: aplikácia a jej závislosti, zostavené z Dockerfile. Kontajner je bežiaca kópia tohto obrazu. Z jedného obrazu môžete spustiť mnoho kontajnerov.
Je Docker virtuálny počítač?
Nie. Virtuálny počítač emuluje celý počítač s vlastným operačným systémom. Kontajnery zdieľajú jadro operačného systému hostiteľa a izolujú len aplikáciu, takže sa spúšťajú rýchlejšie a používajú menej pamäte.
Je Docker zadarmo?
Docker Engine, jadro, ktoré spúšťa kontajnery, je zadarmo a open source. Podľa podmienok Dockeru z septembra 2026 je Docker Desktop zadarmo pre nekomerčné open source projekty a pre firmy s menej ako 250 zamestnancami a ročným obratom nižším ako 10 miliónov dolárov; väčšie firmy potrebujú platené predplatné.
Potrebujem sa naučiť Docker, aby som vytvoril aplikáciu s AI?
Zvyčajne nie. Mnohé nástroje na tvorbu aplikácií s AI kontajnery zvládajú za vás. Je však dobré vedieť, čo je Dockerfile, aby ste rozumeli, ako je backend zabalený, a aby ste ho mohli spustiť alebo hostovať inde, ak aplikáciu exportujete.