Co je Docker? Kontejnery vysvětlené pro nevývojáře
Docker je nástroj, který zabalí aplikaci spolu se vším, co potřebuje ke běhu — správnou verzí jazyka, knihovnami, systémovými nástroji a nastaveními — do standardní jednotky zvané kontejner. Kontejner běží stejně na notebooku vývojáře, na testovacím serveru i u cloudového hostingu, a tím končí klasický problém „ale u mě to fungovalo". Recept na sestavení kontejneru je krátký textový soubor zvaný Dockerfile.
Proč na Dockeru záleží, když stavíte s AI
Pokud má vaše aplikace backend — API v Pythonu, Node, C# nebo Javě — musí běžet na místě, kde je přesně správný software. Docker je nejběžnější způsob, jak to udělat opakovatelně.
- Nasazování backendů. Mnoho hostingů, včetně Mythexu, nasazuje backendy tak, že z Dockerfile sestaví kontejner. V Mythexu si vyžádáte „C# Web API" nebo „Java backend" a dostanete aplikaci plus Dockerfile; Publikovat sestaví obraz a nasadí ho (API backendy).
- Odchod z platformy. Pokud exportujete aplikaci postavenou s AI, Dockerfile výrazně usnadní její spuštění na jiném hostingu. Viz jak exportovat a hostovat vlastním serverem aplikaci postavenou s AI.
- Spolupráce s vývojáři. Vývojář, který se připojí k vašemu projektu, může spustit celou aplikaci jedním nebo dvěma příkazy místo toho, aby strávil den instalací věcí.
Každodenní přirovnání: přepravní kontejnery
Předtím, než existovaly standardní přepravní kontejnery, se náklad nakládal kus po kusu — pytle, sudy, bedny — a každý přístav to řešil jinak. Standardní ocelový kontejner to změnil: zabalíte ho jednou a jakákoli loď, jeřáb, vlak nebo kamion ho přesune, aniž by řešili, co je uvnitř.
Docker dělá totéž pro software:
- Dockerfile je balicí seznam a návod.
- Obraz je zapečetěný, zabalený kontejner.
- Běžící kontejner je ta bedna, která pracuje na lodi — tady na serveru.
- Docker Engine je jeřáb a loď: software na serveru, který umí spustit jakýkoli kontejner.
Jak Docker funguje
| Část | Co to je |
|---|---|
| Dockerfile | Textový soubor s krok-za-krokem instrukcemi pro sestavení obrazu. |
| Obraz (image) | Balíček jen pro čtení: základy operačního systému, běhové prostředí, knihovny a váš kód. |
| Kontejner | Běžící instance obrazu, izolovaná od ostatních aplikací na stejném stroji. |
| Registr | Místo pro ukládání a sdílení obrazů, například Docker Hub nebo registr cloudového poskytovatele. |
| Docker Engine | Služba na pozadí, která sestavuje obrazy a spouští kontejnery. Zdarma a s otevřeným kódem. |
| Docker Desktop | Aplikace pro Mac, Windows a Linux, která obaluje engine grafickým rozhraním. |
Kontejnery versus virtuální počítače: virtuální počítač předstírá, že je celý oddělený počítač s vlastním operačním systémem, takže je těžký a pomalu startuje. Kontejner sdílí jádro operačního systému hostitele a izoluje jen aplikaci a její soubory, takže obvykle startuje za několik sekund a spotřebuje mnohem méně paměti. Na jednom serveru může běžet mnoho kontejnerů vedle sebe.
Praktický příklad: malé Python API
Představme si, že váš AI nástroj vytvořil pro rezervační aplikaci backend v Python FastAPI. Dockerfile může vypadat 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"]
Řádek po řádku:
| Řádek | Co dělá |
|---|---|
FROM python:3.12-slim | Začne od oficiálního obrazu, který už má nainstalovaný Python 3.12. |
WORKDIR /app | Pracuje ve složce /app uvnitř kontejneru. |
COPY requirements.txt . a RUN pip install ... | Zkopíruje seznam knihoven a nainstaluje je. |
COPY . . | Zkopíruje vlastní kód aplikace. |
EXPOSE 8000 | Upozorňuje, že aplikace naslouchá na portu 8000. |
CMD [...] | Příkaz, který při spuštění kontejneru nastartuje webový server. |
Prosté slovy: „Začni s Pythonem 3.12. Nainstaluj knihovny uvedené v requirements.txt. Zkopíruj kód. Spusť webový server na portu 8000."
Vývojář (nebo hostingová platforma) pak spustí dva příkazy:
docker build -t booking-api .
docker run -p 8000:8000 booking-api
První sestaví obraz a pojmenuje ho booking-api. Druhý spustí kontejner a propojí port 8000 na stroji s portem 8000 uvnitř kontejneru. API teď běží — stejně jako poběží na libovolném serveru s Dockerem.
Všimněte si, co v obrazu není: hesla a API klíče. Ty se předávají až při spuštění kontejneru jako proměnné prostředí, takže stejný obraz může běžet v testování i v produkci s různým nastavením.
Klíčové pojmy
| Pojem | Význam |
|---|---|
| Kontejner | Izolovaný, běžící balíček aplikace a jejích závislostí. |
| Obraz | Šablona, ze které se kontejner spouští. |
| Základní obraz (base image) | Výchozí bod v řádku FROM v Dockerfile, například python:3.12-slim nebo node:22. |
| Vrstva | Každý krok Dockerfile přidá vrstvu do cache, což zrychluje opětovná sestavení. |
| Mapování portů | Propojení portu hostitele s portem uvnitř kontejneru. |
| Svazek (volume) | Úložiště, které přežije výměnu kontejneru. Samotné kontejnery jsou jednorázové. |
| Docker Compose | Soubor popisující několik kontejnerů, které běží společně, například API plus databázi. |
| Kubernetes | Systém pro běh mnoha kontejnerů na mnoha serverech. Většina malých aplikací ho nepotřebuje. |
Časté omyly
- „Docker je virtuální počítač." Je lehčí: kontejnery sdílejí jádro hostitele.
- „Data uložená uvnitř kontejneru jsou v bezpečí." Kontejnery mají být zahozeny a nahrazeny. Cokoli, co musí přetrvat — uživatelská data, nahrané soubory — patří do databáze, úložiště souborů nebo svazku.
- „Tajné údaje v Dockerfile jsou v pořádku, protože jsou soukromé." Obrazy se sdílejí a nahrávají do registrů. Tajné údaje předávejte až za běhu.
- „Docker dělá aplikaci bezpečnou." Izolace pomáhá, ale kontejner se zastaralým softwarem a slabým nastavením je zranitelný pořád.
- „Každá aplikace potřebuje Docker." Statický web nebo jednoduchý frontend se obvykle hostuje jako běžné soubory, bez kontejneru.
- „Docker Desktop je zdarma pro každého." Engine je zdarma; Docker Desktop podle podmínek Dockeru vyžaduje placené předplatné u větších firem.
Na co se zeptat svého AI nástroje
- „Potřebuje tato aplikace Dockerfile? Pokud ano, vysvětli každý řádek srozumitelně."
- „Použij malý oficiální základní obraz a připni verzi jazyka."
- „Drž tajné údaje mimo obraz. Čti je za běhu z proměnných prostředí."
- „Ujisti se, že nahrané soubory a data jsou uložena v databázi nebo úložišti souborů, ne uvnitř kontejneru."
- „Přidej soubor Docker Compose, aby vývojář mohl spustit frontend, API a databázi lokálně jedním příkazem."
- „Přidej koncový bod pro kontrolu stavu, aby hostitel poznal, zda API běží."
Docker v Mythexu
Na používání Mythexu Docker instalovat ani spouštět nemusíte. Váš projekt běží v soukromém cloudovém sandboxu a když si vyžádáte backend, který potřebuje kontejner — například C#, Javu nebo vlastní službu v Node nebo Pythonu — Mythex napíše aplikaci plus Dockerfile, ukáže náhled v sandboxu a při publikování ji nasadí, bez jakéhokoli nastavování hostingu (jak se volí technologie). Na Pro můžete projekt exportovat nebo synchronizovat s GitHubem a Dockerfile si odnést s sebou. Jak spolu backendy a frontendy souvisejí, viz frontend vs backend.
Otázky
Co je Docker jednoduše řečeno?
Docker je nástroj, který zabalí aplikaci spolu se vším, co potřebuje ke běhu — běhovým prostředím jazyka, knihovnami a nastaveními — do standardní jednotky zvané kontejner. Kontejner běží stejně na notebooku, na testovacím serveru i u cloudového hostingu.
Jaký je rozdíl mezi Docker obrazem a kontejnerem?
Obraz je zabalená šablona jen pro čtení: aplikace a její závislosti, sestavené podle Dockerfile. Kontejner je běžící kopie tohoto obrazu. Z jednoho obrazu lze spustit mnoho kontejnerů.
Je Docker virtuální počítač?
Ne. Virtuální počítač emuluje celý počítač s vlastním operačním systémem. Kontejnery sdílejí jádro operačního systému hostitele a izolují jen aplikaci, takže se spouštějí rychleji a spotřebovávají méně paměti.
Je Docker zdarma?
Docker Engine, jádro, které kontejnery spouští, je zdarma a má otevřený zdrojový kód. Podle podmínek Dockeru z září 2026 je Docker Desktop zdarma pro nekomerční projekty s otevřeným zdrojovým kódem a pro firmy s méně než 250 zaměstnanci a ročním obratem nižším než 10 milionů dolarů; větší firmy potřebují placené předplatné.
Potřebuji se naučit Docker, abych mohl stavět aplikaci s AI?
Obvykle ne. Mnoho AI nástrojů kontejnery zvládne za vás. Je dobré vědět, co je Dockerfile, abyste rozuměli tomu, jak je backend zabalen, a mohli aplikaci spustit nebo hostovat jinde, pokud ji exportujete.