Docker: Wat het is, hoe het werkt en waarom zoveel developers het gebruiken

WI
Wilan
4 min. leestijd
docker

Wat is Docker?

Als je regelmatig werkt met programmeren, webdevelopment of servers, heb je waarschijnlijk de term Docker al eens gehoord.

Docker is een platform waarmee we applicaties kunnen draaien in een omgeving die een container wordt genoemd.

Simpel gezegd helpt Docker ons om een applicatie te verpakken samen met alles wat ervoor nodig is, zoals bibliotheken, dependencies, configuraties en specifieke runtime-versies.

Wanneer die applicatie dus wordt verplaatst van de laptop van een developer naar een server, wordt de kans op problemen zoals:

"Op mijn laptop werkt het, waarom geeft de server een error?"

aanzienlijk kleiner.

Docker zorgt ervoor dat de applicatieomgeving consistenter is.


Wat is een Container?

Je kunt een container zien als een speciale doos voor een applicatie.

In die doos bevinden zich de applicatie en alle benodigdheden om de applicatie te laten draaien.

Stel we hebben bijvoorbeeld een Laravel-applicatie die het volgende vereist:

  • PHP 8.3
  • MySQL
  • Redis
  • Nginx
  • Composer

In plaats van alles stuk voor stuk op de computer te installeren, kunnen we Docker gebruiken om al deze benodigdheden in hun eigen containers te laten draaien.

De structuur ziet er ongeveer zo uit:

Laravel Application
│
├── PHP Container
├── Nginx Container
├── MySQL Container
└── Redis Container

Al deze containers kunnen met elkaar verbonden worden en samenwerken als één systeem.


Docker is geen Virtuele Machine

Docker wordt vaak verward met een Virtuele Machine (VM).

Toch zijn ze verschillend.

Een Virtuele Machine draait doorgaans een compleet besturingssysteem binnen een computer.

Stel we gebruiken Windows en draaien vervolgens Ubuntu via VirtualBox.

Een VM vereist vrij veel resources omdat het een compleet besturingssysteem moet draaien.

Docker is lichter omdat containers gebruikmaken van de kernel van het host-besturingssysteem.

Een eenvoudig overzicht hiervan:

Virtuele Machine

Hardware
↓
Operating System
↓
Virtual Machine
↓
Guest Operating System
↓
Application

Docker

Hardware
↓
Operating System
↓
Docker
↓
Container
↓
Application

Daarom is Docker meestal sneller te maken, te starten, te stoppen en te verwijderen in vergelijking met een Virtuele Machine.


Waarom wordt Docker zoveel gebruikt?

Er zijn verschillende redenen waarom Docker momenteel erg populair is onder developers.

1. Consistentere omgeving

Een van de klassieke problemen bij development is het verschil in omgevingen.

De eerste developer gebruikt bijvoorbeeld:

PHP 8.2

De tweede developer gebruikt:

PHP 8.3

Terwijl de productieserver het volgende gebruikt:

PHP 8.1

Dit soort kleine verschillen kunnen soms errors in de applicatie veroorzaken.

Met Docker kan de omgevingsversie vanaf het begin worden vastgelegd.

Bijvoorbeeld:

FROM php:8.3-fpm

Op deze manier kunnen alle developers de applicatie draaien met dezelfde PHP-versie.


2. Projectsetup wordt een stuk eenvoudiger

Stel je voor dat je net bij een project komt kijken.

Normaal gesproken moet je mogelijk het volgende installeren:

PHP
Composer
MySQL
Node.js
Redis
Nginx

Om nog maar te zwijgen over het zorgen dat de versies overeenkomen.

Met Docker hoef je doorgaans alleen een commando uit te voeren zoals:

docker compose up -d

Docker start vervolgens de services die door het project zijn gedefinieerd.

De development setup wordt zo een stuk praktischer.


3. Minder "Werkt op mijn machine"-problemen

Developers hebben vast wel eens in zo'n situatie gezeten:

Developer A:
"De applicatie werkt op mijn laptop."

Developer B:
"Op mijn laptop geeft het een error."

Server:
"Hier werkt het helemaal niet."

Dergelijke problemen ontstaan meestal door verschillen in de omgeving.

Docker helpt ervoor te zorgen dat de applicatie in nagenoeg dezelfde omgeving draait, of het nu gaat om:

  • de laptop van de developer,
  • de computer van een andere developer,
  • de staging-server,
  • de productieserver.

4. Eenvoudig meerdere services draaien

Moderne applicaties vereisen meestal meer dan één service.

Een applicatie vereist bijvoorbeeld:

Backend      → Laravel
Database     → MySQL
Cache        → Redis
Web Server   → Nginx
Queue        → Laravel Queue Worker

Met Docker Compose kunnen al deze services in één bestand worden geconfigureerd.

Bijvoorbeeld:

services:
  app:
    build: .

  mysql:
    image: mysql:8

  redis:
    image: redis:latest

  nginx:
    image: nginx:latest

Daarna hoef je alleen dit uit te voeren:

docker compose up -d

Docker zal al deze services starten. Voor een lijst met andere handige commando's kun je de handleiding [bekijken van docker container logs]() die we hebben samengevat.

Conclusie

Docker is een platform waarmee we applicaties kunnen draaien binnen containers met een consistentere omgeving.

In plaats van handmatig PHP, MySQL, Redis, Nginx en verschillende dependencies te installeren, kunnen we dit allemaal definiëren met behulp van Docker.

Het grootste voordeel is dat de development-omgeving makkelijker te verplaatsen, te delen en uit te voeren is op andere apparaten.

De belangrijkste concepten om te begrijpen wanneer je begint met het leren van Docker zijn:

  • Docker Image als sjabloon.
  • Container als de draaiende applicatie.
  • Dockerfile als instructie voor het maken van een image.
  • Docker Compose om meerdere containers te beheren.
  • Volume om data op te slaan.
  • Netwerk voor communicatie tussen containers.

Als je vaak applicaties ontwikkelt die meerdere services vereisen of als je in een team van developers werkt, is Docker zeker een tool die het waard is om te leren.

W

Geschreven door

Wilan

Vaste bijdrager van Bali Island Tekno die actief kennis deelt over technologie, programmeren en de wereld van software-engineering.

Terug naar Home Bijgewerkt op: 1 september 2026