DX Heroes logo
#devops
#docker

Co je Docker Compose?

Délka: 

4 min

Publikováno: 

9. června 2026

Co je Docker Compose?

Co je Docker Compose?

Docker Compose je nástroj, který naráz spustí aplikaci složenou z několika kontejnerů. Skutečná aplikace bývá málokdy jen jeden program: máte webový server, databázi, často i cache a proces běžící na pozadí. Compose vám dovolí popsat to všechno v jednom souboru, obvykle pojmenovaném compose.yaml, a pak je jediným příkazem spustit, zastavit a propojit.

Bez Compose spouštíte každý kontejner ručně dlouhým příkazem docker run a propojujete je sami. S Compose je zdrojem pravdy ten soubor. Kdokoli v týmu spustí docker compose up a dostane stejnou sadu služeb, na stejné síti a se stejným nastavením.

Lidsky řečeno

Představte si jeden kontejner jako jeden spotřebič v kuchyni, třeba troubu. Docker Compose je recept, který říká, jaké spotřebiče potřebujete, jak se propojí a v jakém pořadí je zapnout. Místo abyste každé ráno všechno zapínali ručně, předáte recept a celá kuchyně naběhne pokaždé stejně.

Jak to funguje

Napíšete soubor compose.yaml, který vyjmenuje vaše služby (z každé služby vznikne jeden nebo více kontejnerů) a k tomu sítě a úložiště, která potřebují. Tady je nejmenší možný příklad: webová aplikace, která komunikuje s databází Postgres.

services:
  web:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - db
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

Spustíte docker compose up v té složce a Compose sestaví image pro službu web, stáhne image postgres:16, oba kontejnery nastartuje a dá je na společnou síť. Služba web se k databázi dostane prostě přes název db, protože síťování za vás vyřeší Compose. Pojmenované úložiště db-data udrží data databáze i poté, co se kontejnery zastaví. Až skončíte, příkaz docker compose down kontejnery čistě odstraní.

Kdy ho použít a kdy ne

Compose použijte, když:

  • Vyvíjíte lokálně a chcete jediným příkazem rozběhnout celou aplikaci na novém počítači.
  • Vaše aplikace má pár služeb, které spolu musejí komunikovat, třeba API, databázi a frontu.
  • Pouštíte integrační testy v CI a potřebujete čerstvě nastartované reálné závislosti, ne jejich napodobeniny.

Sáhněte po něčem jiném, když:

  • Běžíte v produkci ve velkém. Compose běží na jednom stroji. Pro více serverů, automatické restarty a postupné aktualizace použijte orchestrátor, například Kubernetes.
  • Máte jen jeden kontejner. Obyčejný docker run je jednodušší a Compose vám tu moc nepřidá.

Na co si dát pozor

  • Neberte Compose jako produkční platformu. Pro lokální vývoj a CI je skvělý, ale nerozloží zátěž mezi více strojů a sám se po výpadku nezotaví.
  • Nepište hesla přímo do souboru. Hesla a API klíče patří do proměnných prostředí nebo do správce tajemství, ne do verzovaného compose.yaml.
  • Pamatujte, že pojmenovaná úložiště přetrvávají. Data přežijí příkaz docker compose down. Smažete je až příkazem docker compose down -v, který se snadno spustí omylem.
  • Nepředpokládejte, že depends_on počká na připravenost. Řídí jen pořadí startu, ne to, jestli je služba opravdu připravená přijímat spojení. Pokud aplikace potřebuje běžící databázi dřív, než se sama spustí, přidejte healthcheck.

Související články

  • SDK vs API: v čem se liší? - Dva pojmy, které vývojáři pletou dohromady, vysvětlené na jasných příkladech.
  • Co je context engineering? - Dovednost dát AI nástrojům správné informace ve správnou chvíli.
  • Co je to Vibe coding? - Tvoření aplikací skrze AI, kde prompting nahrazuje manuální psaní kódu.

Chcete být o krok napřed?

Nenechte si utéct naše nejlepší postřehy. Žádný spam, jen praktické analýzy, pozvánky na exkluzivní eventy a shrnutí podcastů přímo do vaší schránky.