Zpět na domů

Jak používat Docker pro začátečníky: Praktický průvodce

Tento komplexní tutoriál Dockeru učí začátečníky, jak kontejnerizovat aplikace pomocí Dockeru. Pokrývá základní koncepty, instalaci, spouštění kontejnerů, vytváření vlastních obrazů pomocí Dockerfile a správu vícekontejnerových aplikací pomocí Docker Compose.

Docker pro začátečníky: Kontejnerizujte svou první aplikaci
Advertisement 728x90

Docker pro začátečníky: praktický průvodce kontejnerizací

Docker pro začátečníky: praktický průvodce kontejnerizací

Dlouhá léta byla fráze „na mém počítači to funguje“ prokletím vývoje softwaru. Pokud jste vývojář, systémový administrátor nebo IT specialista, který chce pochopit, jak používat Docker pro začátečníky, jste na správném místě. Docker tento problém řeší tím, že nabízí výkonné a lehké řešení pro balení a spouštění aplikací v izolovaných prostředích, nazývaných kontejnery, a zajišťuje jejich stabilní chod všude – od vašeho notebooku až po cloud.

Co se dozvíte

Na konci této příručky pochopíte základní koncepty Dockeru, spustíte svůj první kontejner, vytvoříte vlastní image a naučíte se spravovat vícekontejnerové aplikace pomocí Docker Compose. Získáte jasný a reprodukovatelný proces kontejnerizace vašich vlastních aplikací, což vám umožní optimalizovat pracovní postupy vývoje a nasazování.

Google AdInline article slot

Co je Docker a proč je důležitý?

Docker je otevřená platforma navržená pro zjednodušení procesu sestavování, doručování a spouštění aplikací. Dosahuje toho tím, že umožňuje oddělit vaše aplikace od infrastruktury a považovat váš software a jeho závislosti za jeden přenosný blok.

Představte si Docker jako systém kontejnerů pro software. Stejně jako fyzický kontejner může přepravovat jakýkoli náklad a pohybovat se na lodi, vlaku nebo kamionu, může kontejner Dockeru obsahovat jakoukoli aplikaci s jejími závislostmi a stabilně fungovat v jakémkoli systému, kde je Docker nainstalován. Tato standardizace udělala z Dockeru de facto standard pro správu cloudových aplikací: jeho veřejný registr Docker Hub obsahuje více než 14 milionů image aplikací a zpracovává více než 11 miliard stažení image měsíčně.

Klíčové výhody používání Dockeru

  • Přenositelnost a konzistence: Kontejnery fungují na jakémkoli počítači s Dockerem (Linux, Windows, macOS) a odstraňují chyby související s prostředím.
  • Lehkost a rychlost: Na rozdíl od tradičních virtuálních strojů (VM) kontejnery využívají jádro hostitelského OS, díky čemuž jsou mnohem menší (megabajty oproti gigabajtům) a umožňují spuštění během milisekund.
  • Izolace a efektivita: Kontejnery jsou izolovány od sebe navzájem i od hostitelského systému, což zvyšuje bezpečnost a umožňuje spouštět více aplikací bez konfliktů.
  • DevOps a CI/CD: Kontejnery jsou základem moderních CI/CD pipeline, které zajišťují rychlé testování a nasazování.

Pochopení základních konceptů: image a kontejnery

Než se ponoříme hlouběji, je důležité pochopit vztah mezi image a kontejnerem. To jsou dva nejzákladnější koncepty v Dockeru.

Google AdInline article slot
  • Docker image: Image je lehký, samostatný, spustitelný softwarový balíček, který obsahuje vše potřebné pro spuštění softwaru: kód, běhové prostředí, systémové nástroje, knihovny a nastavení. Je to šablona pouze pro čtení, podobná snímku nebo plánu. Například nginx:alpine je předpřipravený image pro webový server NGINX.
  • Docker kontejner: Kontejner je spuštěná instance image. Můžete vytvářet, spouštět, zastavovat, přesouvat nebo odstraňovat kontejner pomocí API nebo CLI Dockeru. Je to image, který „běží“ ve vašem systému.

Vaše první kroky s Dockerem

1. Instalace Dockeru

Pro začátek musíte nainstalovat Docker. Nejjednodušší způsob, jak to udělat na Windows nebo macOS, je stáhnout a nainstalovat Docker Desktop z oficiálních stránek Dockeru. Obsahuje vše potřebné: Docker engine, CLI a Compose. Pro uživatele Linuxu můžete nainstalovat Docker engine pomocí správce balíčků vaší distribuce.

Po instalaci otevřete terminál nebo příkazový řádek a ověřte instalaci:

docker --version

2. Spuštění vašeho prvního kontejneru

Pojďme spustit kontejner „Hello World“, abychom se ujistili, že vše funguje. Toto je tradiční první krok k pochopení toho, jak používat Docker pro začátečníky.

Google AdInline article slot
docker run hello-world

Tento příkaz dělá několik věcí: zkontroluje, zda image hello-world existuje lokálně, pokud ne, stáhne jej z Docker Hubu, a poté vytvoří a spustí kontejner z tohoto image. Kontejner vypíše uvítací zprávu a ukončí se. Tento tok – kontrola lokálně, stažení z registru, poté spuštění – je základem práce s Dockerem.

3. Spuštění reálného webového serveru

Pojďme to udělat zajímavějším spuštěním reálného webového serveru NGINX na pozadí. Tento příkaz zavádí tři důležité přepínače:

docker run -d -p 8080:80 --name mywebserver nginx
  • -d (Detached): Spouští kontejner na pozadí.
  • -p 8080:80 (Publish): Mapuje port 8080 na vašem hostitelském počítači na port 80 uvnitř kontejneru. Nyní můžete přistupovat k webovému serveru na adrese http://localhost:8080.
  • --name mywebserver: Dává kontejneru srozumitelný název místo náhodného identifikátoru.

Nyní otevřete prohlížeč a přejděte na adresu http://localhost:8080. Měli byste vidět uvítací stránku NGINX! To dokazuje, že reálný webový server běží, je izolován v kontejneru a je dostupný na vašem počítači.

Vytvoření vlastního Docker image

I když je spouštění hotových image užitečné, skutečná síla Dockeru spočívá v balení vašich vlastních aplikací. To se provádí pomocí Dockerfile.

Co je Dockerfile?

Dockerfile je jednoduchý textový soubor obsahující sadu instrukcí nebo příkazů o tom, jak sestavit Docker image. Funguje jako recept na vytvoření přenosného a soběstačného prostředí pro vaši aplikaci.

Vytvoření jednoduché Node.js aplikace

Pojďme vytvořit jednoduchý Dockerfile pro kontejnerizaci Node.js aplikace. To vám poskytne praktickou šablonu, kterou lze přizpůsobit pro mnoho projektů.

  1. Vytvořte složku projektu:
    mkdir my-node-app && cd my-node-app
  2. Vytvořte jednoduchou aplikaci: Vytvořte soubor s názvem app.js.
    const http = require('http');
    
    const server = http.createServer((req, res) => {
      res.writeHead(200, { 'Content-Type': 'text/plain' });
      res.end('Hello, World! My app is running in a container!\n');
    });
    
    server.listen(3000, () => {
      console.log('Server running at http://localhost:3000/');
    });
  3. Vytvořte package.json: Vytvořte soubor s názvem package.json, který deklaruje závislosti aplikace.
    {
      "name": "my-node-app",
      "version": "1.0.0",
      "main": "app.js"
    }

Napsání Dockerfile

Nyní vytvořte soubor s názvem Dockerfile (bez přípony) ve stejné složce s následujícím obsahem:

FROM node:18-alpine
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]

Pojďme si rozebrat každý příkaz:

  • FROM node:18-alpine: Inicializuje sestavení ze základního image. Používáme oficiální Node.js image verze 18 založený na Alpine Linux – velmi malé distribuci Linuxu, díky čemuž je náš image výrazně lehčí.
  • WORKDIR /app: Nastavuje pracovní složku pro všechny následující instrukce RUN, CMD, COPY a ADD. Pokud složka neexistuje, bude vytvořena.
  • COPY package.json ./: Kopíruje soubor package.json z vaší lokální složky do aktuální pracovní složky uvnitř image.
  • RUN npm install: Spouští příkaz npm install uvnitř kontejneru pro instalaci všech závislostí definovaných v package.json.
  • COPY . .: Kopíruje zbytek zdrojového kódu vaší aplikace z lokální složky do pracovní složky uvnitř image.
  • EXPOSE 3000: Sděluje Dockeru, že kontejner naslouchá na portu 3000 během běhu.
  • CMD ["node", "app.js"]: Určuje příkaz, který bude proveden při spuštění kontejneru z tohoto image.

Sestavení a spuštění vašeho image

  1. Sestavte image: V terminálu spusťte příkaz docker build:

    docker build -t my-node-app:1.0 .
    • -t my-node-app:1.0: Přiřazuje vašemu image název a verzi.
    • .: Sděluje Dockeru, aby hledal Dockerfile v aktuální složce.
  2. Spusťte kontejner: Nyní spusťte váš nový image a namapujte port hostitele na port kontejneru:

    docker run -d -p 3000:3000 --name my-running-app my-node-app:1.0

Přejděte v prohlížeči na adresu http://localhost:3000 a měli byste vidět zprávu „Hello, World!“. Gratulujeme, úspěšně jste vytvořili a spustili svůj vlastní Docker image!

Správa vícekontejnerových aplikací pomocí Docker Compose

Moderní aplikace se zřídka skládají z jedné služby; často zahrnují webové rozhraní, databázi, cache a mnoho dalšího. Správa pomocí několika příkazů docker run může být těžkopádná. Docker Compose je nástroj, který umožňuje definovat a spouštět vícekontejnerové aplikace v jednom souboru compose.yaml (nebo docker-compose.yml).

Příklad: webová aplikace s Redis

Zde je příklad souboru compose.yaml, který definuje webovou službu a službu cache Redis:

services:
  web:
    image: nginx:alpine
    ports:
      - "8082:80"
  cache:
    image: redis:alpine

Tento soubor definuje dvě služby:

  • web: Používá oficiální image nginx:alpine a mapuje port 8082 na hostiteli na port 80 uvnitř kontejneru.
  • cache: Používá oficiální image redis:alpine.

Pro spuštění obou služeb jednoduše použijte následující příkazy:

docker compose up -d
docker compose ps

To spustí oba kontejnery společně ve vyhrazené síti, což jim umožní vzájemně komunikovat. Můžete vše zastavit a odstranit pomocí docker compose down.

Zdroje

  1. Docker Docs. «Introduction.»
  2. Docker Docs. «Overview of the Docker workshop.»
  3. Docker Docs. «What is Docker?»
  4. Docker Setup for DevOps Beginners (GitHub)
  5. KodeKloud. «Docker Tutorial for Beginners in 2026: First Steps.»
  6. Microsoft Learn. «When to use Docker containers.»
  7. freeCodeCamp. «How to Containerize a Node.js Application Using Docker.»
  8. Docker Docs. «Get started.»
  9. Communications of the ACM. «A Decade of Docker Containers.»
  10. Flatcar. «Getting started with Docker.»
  11. Manning Publications. «Learn Docker in a Month of Lunches.»

— Editorial Team

Advertisement 728x90

Číst dál