Skapa compose.yaml-filer

Docker för medelnivå

Mike Metzger

Data Engineering Consultant

YAML

  • Yet Another Markup Language
    • YAML Ain't Markup Language
  • Textfil där indragningar spelar roll (som i Python)
  • Används i många utvecklingsscenarier för konfiguration
  • Reglerna kan vara knepiga – se till att poster är indragna som i exemplen
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 för medelnivå

Huvudavsnitt

  • Olika avsnitt hanterar olika komponenter
  • services: listar containrarna som ska läsas in
  • networks: hanterar nätverksdefinitioner
  • volumes: styr volymmontering
  • configs: hanterar konfigurationsalternativ utan anpassade avbildningar
  • secrets: ger alternativ för lösenord, tokens, API-nycklar med mera
  • Se Docker Compose dokumentation för mer information
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 för medelnivå

Avsnittet services

  • Definierar alla resurser som krävs för applikationen
  • Anger i första hand vilka containrar och avbildningar som ska användas
  • Många alternativ finns, men de gäller enbart den enskilda containern
  • Indragningar används efter behov
  • Första underavsnitt är komponentens namn, följt av inställningarna
Docker för medelnivå

Exempel på services

services:

# Resource name postgres:
# Container name, otherwise random container_name: postgres
# Container image to use image: postgres:latest
# Any port mapping required ports: # Network details - "5432:5432"
# Next resource pgadmin: ...
  • Resursnamn
  • container_name:, det tilldelade namnet på containern – annars slumpmässigt
  • image:, vilken containeravbildning som ska användas
  • ports:, lista över eventuella portmappningar
  • Följs av nästa resurs som behövs
Docker för medelnivå

Ytterligare kommentarer

  • Syntaxen i config.yaml är omfattande
    • Här täcks bara en liten del av alternativen i compose.yaml
    • Läs dokumentationen!
  • Det är sällan nödvändigt att skapa en compose.yaml-fil från grunden
1 https://docs.docker.com/compose/compose-file/
Docker för medelnivå

Nu kör vi en övning!

Docker för medelnivå

Preparing Video For Download...