Docker is een platform waarmee software samen met alles wat daarvoor nodig is in een container wordt verpakt. Zo draait een applicatie op elke computer of server op dezelfde manier, ongeacht wat daar verder is geïnstalleerd. Docker wordt veel gebruikt bij het bouwen en online zetten van websites en webapplicaties.
Wat is een container
Een container is een afgesloten omgeving waarin een programma draait, met zijn eigen bestanden en instellingen. Containers delen het besturingssysteem van de computer waarop ze draaien. Daardoor zijn ze lichter en sneller te starten dan een volledige virtuele machine.
Een container wordt gemaakt van een image: een kant-en-klaar pakket met de software en de bijbehorende onderdelen. Van één image kunnen meerdere containers worden gestart.
Waarvoor Docker wordt gebruikt
Het grootste voordeel van Docker is dat de omgeving voorspelbaar is. Wat bij de ontwikkelaar werkt, werkt in dezelfde container ook op de server. Dat voorkomt problemen als „bij mij werkt het wel”.
- Een project draait met precies de versie van bijvoorbeeld PHP of een database die het nodig heeft.
- Meerdere projecten met verschillende versies kunnen naast elkaar draaien.
- Een webserver, database en andere onderdelen kunnen als losse containers samenwerken.
- Een nieuwe versie online zetten kan snel en herhaalbaar.
Belangrijke begrippen
De afspraken voor een image staan in een Dockerfile, een tekstbestand met stappen. Met Docker Compose beschrijf je een groep containers die samen een applicatie vormen. Images worden vaak gedeeld via een register, zoals Docker Hub.
Een nuance: gegevens in een container zijn standaard tijdelijk. Verdwijnt de container, dan verdwijnen ook die gegevens, tenzij ze op een apart volume staan. Docker vraagt bovendien enige leertijd. Kort gezegd: Docker verpakt software in containers die overal hetzelfde draaien.