Tworzenie plików compose.yaml

Docker średnio zaawansowany

Mike Metzger

Data Engineering Consultant

YAML

  • Yet Another Markup Language
    • YAML Ain't Markup Language
  • Plik tekstowy – wcięcia mają znaczenie (jak w Pythonie)
  • Stosowany w wielu scenariuszach konfiguracyjnych
  • Zasady mogą być złożone – należy dbać o wyrównanie wpisów
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
Docker średnio zaawansowany

Główne sekcje

  • Poszczególne sekcje odpowiadają różnym komponentom
  • services: – lista kontenerów do uruchomienia
  • networks: – definicje sieci
  • volumes: – zarządzanie montowaniem woluminów
  • configs: – opcje konfiguracyjne bez niestandardowych obrazów
  • secrets: – obsługa haseł, tokenów, kluczy API itp.
  • Więcej informacji w dokumentacji 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/
Docker średnio zaawansowany

Sekcja services

  • Definiuje wszystkie zasoby wymagane przez aplikację
  • Określa kontenery i obrazy do użycia
  • Dostępnych jest wiele opcji, ale dotyczą one poszczególnych kontenerów
  • Wcięcia stosuje się według potrzeb
  • Pierwsza podsekcja to nazwa komponentu, po niej następują ustawienia
Docker średnio zaawansowany

Przykład sekcji services

services:

# Nazwa zasobu postgres:
# Nazwa kontenera (inaczej losowa) container_name: postgres
# Obraz kontenera image: postgres:latest
# Wymagane mapowanie portów ports: # Szczegóły sieci - "5432:5432"
# Kolejny zasób pgadmin: ...
  • Nazwa zasobu
  • container_name: – przypisana nazwa kontenera (inaczej losowa)
  • image: – obraz kontenera do użycia
  • ports: – lista wymaganego mapowania portów
  • Następne wymagane zasoby
Docker średnio zaawansowany

Dodatkowe uwagi

  • Składnia config.yaml jest rozbudowana
    • Omówiono jedynie część opcji compose.yaml
    • Warto zapoznać się z dokumentacją!
  • Zazwyczaj nie trzeba tworzyć pliku compose.yaml od podstaw
1 https://docs.docker.com/compose/compose-file/
Docker średnio zaawansowany

Czas na ćwiczenia!

Docker średnio zaawansowany

Preparing Video For Download...