compose.yaml-bestanden maken

Docker voor gevorderden

Mike Metzger

Data Engineering Consultant

YAML

  • Yet Another Markup Language
    • YAML Ain't Markup Language
  • Tekstbestand, maar spaties zijn belangrijk (zoals in Python)
  • Veel gebruikt voor configuratie in development
  • Regels kunnen lastig zijn; houd entries uitgelijnd zoals in de voorbeelden
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 voor gevorderden

Hoofdsecties

  • Verschillende secties voor verschillende componenten
  • services: lijsten de containers om te laden
  • networks: behandelt netwerkdefinities
  • volumes: beheert volume-mounts
  • configs: configuratieopties zonder custom images
  • secrets: opties voor wachtwoorden, tokens, API-sleutels, enz.
  • Zie de Docker Compose documentatie voor meer info
services:
  ... # Definieer containers

networks: ... # Definieer netwerkinstellingen
volumes: ... # Definieer opslagvereisten
configs: ... # Definieer speciale configdetails
secrets: ... # Definieer wachtwoorden / enz.
1 https://docs.docker.com/compose/compose-file/
Docker voor gevorderden

Services-sectie

  • Definieert alle vereiste resources voor de app
  • Specificeert vooral de te gebruiken containers en images
  • Veel opties beschikbaar, gelden per individuele container
  • Inspringing toepassen waar nodig
  • Eerste subsectie is de componentnaam, gevolgd door de settings
Docker voor gevorderden

Voorbeeld van services

services:

# Resourcenaam postgres:
# Containernaam, anders willekeurig container_name: postgres
# Te gebruiken containerimage image: postgres:latest
# Vereiste poortkoppelingen ports: # Netwerkdetails - "5432:5432"
# Volgende resource pgadmin: ...
  • Resourcenaam
  • container_name:, de toegewezen containernaam; anders willekeurig
  • image:, welke containerimage te gebruiken
  • ports:, lijst met vereiste poortkoppelingen
  • Daarna de overige vereiste resources
Docker voor gevorderden

Aanvullende opmerkingen

  • config.yaml-syntax is uitgebreid
    • We behandelen maar een klein deel van de compose.yaml-opties
    • Bekijk de documentatie!
  • Je hoeft een compose.yaml meestal niet from scratch te bouwen
1 https://docs.docker.com/compose/compose-file/
Docker voor gevorderden

Laten we oefenen!

Docker voor gevorderden

Preparing Video For Download...