Jeg vil prøve at forklare lidt om fordelene ved at køre docker-compose fremfor at køre det hele igennem CLI (command-line interface).
Installation:
Få hjælp til at installere docker-compose her.
Hvordan fungerer det?
docker-compose fungerer ved at den læser en .yml fil du laver/kopierer og derefter starter den med de parametre du har defineret.
Det kunne for eksempelvis se sådan her ud:
web:
image: nginx
volumes:
- ./templates:/etc/nginx/templates
ports:
- "8080:80"
environment:
- NGINX_HOST=foobar.com
- NGINX_PORT=80
image: det docker billede den skal bruge.
volumes: her definerer du f.eks om den skal have plads på din harddisk, eller skal bruge docker-volumes.
ports: de porte der skal eksponeres 8080:80 betyder at port 8080 udadtil bliver omlagt til port 80 inde i containeren.
environment: de variabler du vil have med til at konfigurere dit domæne eksempelvis.
Så køres det hele med ‘docker-compose up -d’ // NB: husk at smidde dine docker-compose.yml filer i sin egen mappe, for overskuelighedens skyld. Og kør docker-compose kommandoen samme sted hvor din .yml fil ligger.
Hvorfor docker-compose over command-line interface?
- Mindre rod:
docker-compose er mindre roddet end at skulle køre en kommando igennem CLI hver gang du skal starte din docker med andre parametre eller hvis der er kommet en opdatering. Du skal sådan set kun huske på 1/2 kommando(er): docker-compose up -d & docker-compose down hvis det skal ned igen. - Mere overskueligt:
Tro det eller ej så når først det giver mening så bliver det mere overskueligt især hvis du kører mange docker containers. - Flere containers samtidigt:
Du kan starte alle de containers du vil fra en enkelt docker-compose.yml fil. Du kan også køre hvad der kaldes en stack.yml som startes ved at køre ‘docker-compose -f stack.yml up -d’ – og igen vil jeg pointere overskueligheden ved at køre det gennem docker-compose fremfor hver enkelt igennem command-line. - Data-persistance:
Nogle gange når du sletter en docker-container der bruger docker-volumes kan du miste data’en også. Men i docker-compose er det nemt at sætte en mappe som rod.
Har du spørgsmål til docker-compose eller andre docker ting er Google en god ressource til alle mulige fejlkoder og ting du måtte få.
Held og lykke med det!
Indlæg opdateret 21-3-2021 kl 22:18.