1.6 Docker Compose - dkmattiUCLL/IT-Landscape GitHub Wiki

image

Wat is Docker Compose?

Docker compose is een functionaliteit binnen docker om meerdere containers tegelijk te beheren. Je kunt het zien als een dirigent die ervoor zorgt dat meerdere containers zich op elkaar afstemmen en samenwerken. In dit voorbeeld gebruik ik een WordPress-container en een mySQL-container om op deze manier succesvol WordPress lokaal op mijn pc te draaien. Een Compose-bestand is zelf een .yaml-bestand, en wordt geschreven als Compose.yaml.

Hoe gebruik ik Docker Compose

Maak het Compose.yaml bestand

Voor we verder kunnen met het schrijven in het Compose bestand, moeten we ervoor zorgen dat het bestaat. Maak dus een bestand in je folder met de naam Compose.yaml.

image

Configureer je Compose-bestand

Dit is hoe je bestand er zou moeten uitzien. Hieronder overloop ik wat alles betekent.

image


services

Services zegt eigenlijk niets meer dan welke services je gaat uitvoeren en maakt hier een container voor. Wij hebben de services "mysql" en "wordpress" genoemd maar we hadden ze bijvoorbeeld ook "database" en "website" kunnen noemen.


image

Image is een docker image zoals we die gewoon zijn. We laten de image hier niet zelf maken, maar nemen meteen al een bestaande docker image waardoor we ook geen Dockerfile in dit project moeten zetten.


environment

Environment is waar we de settings meegeven. Dit kunnen dingen zijn zoals de username en password, poorten, hosts, en dingen in die aard. Omdat je niet wilt dat deze dingen altijd zichtbaar zijn, heb ik hier ook gebruik gemaakt van een .env bestand. Dit zorgt ervoor dat ik al deze info niet gewoon in de Compose schrijf, maar vanuit mijn .env file haal met de ${} syntax. Hieronder zie je zo een .env file.

image


ports

ports beslist zoals we in de Dockerfile ook zagen, op welke poort in de container en op welke poort op je computer, de container zal draaien.


volumes

volumes geeft aan op welke plek op je computer, de data die gebruikt wordt in de container, moet bijgehouden worden. Dit is een soort van safety net, zodat als je een container perongeluk verwijdert al de interne data niet verloren gaat.


depends on

depends on zegt tegen het compose-bestand dat deze service niet mag runnen, voordat wat in depends on staat is opgestart. In dit geval mag de WordPress service pas opgestart worden wanneer de MySql service is opgestart.


Navigeer naar de juiste folder in je terminal

In mijn geval is dit de folder wordpress. Hier navigeer ik met de cd command naartoe.

image

Voer docker-compose up uit.

docker-compose up voert je Compose.yaml bestand uit en zorgt dat alle containers draaien. Als je dit bestand correct hebt ingesteld zouden deze nu ook in je Docker Desktop moeten verschijnen.

image

Bekijk Docker Desktop

Als je je foldernaam (in dit geval wordpress) met de twee correcte containers hieronder ziet verschijnen, heb je succesvol een draaiende docker compose gemaakt!

image

image image

⚠️ **GitHub.com Fallback** ⚠️