Vytváření souborů compose.yaml

Intermediate Docker

Mike Metzger

Data Engineering Consultant

YAML

  • Yet Another Markup Language
    • YAML Ain't Markup Language
  • Textový soubor, odsazení je důležité (jako v Pythonu)
  • Používá se v mnoha vývojových scénářích pro konfiguraci
  • Pravidla mohou být složitá – hlavně dodržujte zarovnání jako v příkladech
services:
  postgres:
    container_name: postgres
    image: postgres:latest
    ports:
      - "5432:5432"
    restart: always
  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4:latest
    ports:
      - "5050:80"
    restart: always
Intermediate Docker

Hlavní sekce

  • Různé sekce zajišťují různé komponenty
  • services: definuje kontejnery ke spuštění
  • networks: spravuje síťová nastavení
  • volumes: řídí připojení svazků
  • configs: spravuje konfiguraci bez vlastních obrazů
  • secrets: umožňuje práci s hesly, tokeny, API klíči atd.
  • Více informací v dokumentaci Docker Compose
services:
  ... # Define containers

networks: ... # Define any networking details
volumes: ... # Define storage requirements
configs: ... # Define special config details
secrets: ... # Define passwords / etc
1 https://docs.docker.com/compose/compose-file/
Intermediate Docker

Sekce services

  • Definuje všechny požadované prostředky aplikace
  • Primárně určuje kontejnery a obrazy k použití
  • Nabízí rozsáhlé možnosti, platné pro jednotlivé kontejnery
  • Odsazení se používá dle potřeby
  • První podsekce je název každé komponenty, za nímž následují nastavení
Intermediate Docker

Příklad sekce services

services:

# Název prostředku postgres:
# Název kontejneru, jinak náhodný container_name: postgres
# Použitý obraz kontejneru image: postgres:latest
# Případné mapování portů ports: # Síťové údaje - "5432:5432"
# Další prostředek pgadmin: ...
  • Název prostředku
  • container_name:, přiřazený název kontejneru, jinak náhodný
  • image:, použitý obraz kontejneru
  • ports:, seznam mapování portů
  • Následují další požadované prostředky
Intermediate Docker

Doplňující poznámky

  • Syntaxe config.yaml je rozsáhlá
    • Pokrýváme jen malou část možností compose.yaml
    • Prostudujte dokumentaci!
  • Soubor compose.yaml obvykle není třeba vytvářet od základu
1 https://docs.docker.com/compose/compose-file/
Intermediate Docker

Pojďme si to procvičit!

Intermediate Docker

Preparing Video For Download...