Wat is docker en waarom zou je het gebruiken – uitleg

Daniel Dupré
0

Wat is Docker en wat heb je eraan? Een korte uitleg en toelichting voor iedereen die nog niet met containers aan de slag is gegaan, voor wie wilde wachten tot de software volwassen was, en voor gebruikers die het gevoel hebben dat ze ontwikkelingen hebben gemist. 

Docker werd aanvankelijk als een hype bestempeld, maar het heeft zich (sinds 2013) bewezen als een gevestigde technologie. Heb je tot nu toe de boot een beetje gemist? Het is nooit te laat om met Docker aan de slag te gaan.

Ontdek wat Docker is en waar je het voor kunt gebruiken.

Wat is Docker?

Docker is software die gemaakt is voor systeembeheerders en ontwikkelaars. Het kan vooral nuttig zijn voor toepassingen zoals serverdiensten en voor commandline-tools. In theorie krijg je ook grafische applicaties aan de praat met Docker, maar het is niet de eerste keuze voor desktopsoftware.

Docker gebruikt containertechnologie: dat wordt vaak op één hoop gegooid met virtualisatie, maar verschilt daar fundamenteel in. Een container is geen virtuele ma­chine, maar een normaal proces dat wordt wijsgemaakt dat het zich in een optimale nepwereld bevindt.

Binnen Docker kun je dus geen compleet besturingssysteem installeren, zoals in een virtuele machine. In een Docker-container kan bijvoorbeeld serversoftware draaien zoals de Nginx webserver, Pi-hole adblocker of MariaDB database.

Wat is Docker en waarom zou je het gebruiken

Docker en Linux

Het makkelijkst gebruik je containers met Linux als basis, op een computer (host) die ook Linux draait. Met Windows 10 of hoger is het ook mogelijk Linux-containers op Windows te draaien (dankzij Windows Subsystem for Linux versie 2, WSL2). Windows-containers op Windows-servers zijn een verhaal op zich.


Ontvang gratis informatie en tips over Docker en andere software, schrijf je in voor de nieuwsbrief:


Waarom Docker gebruiken?

Docker heeft verschillende voordelen en sterke kanten.

  • Docker gaat zuinig om met RAM-geheugen. Het proces in de container draait met de kernel van het hostsysteem en gebruikt daarom slechts zoveel werkgeheugen als het proces ook zonder container nodig zou hebben. Omdat geen werkgeheugen aan virtualisatie wordt verspild, draaien allerlei containers probleemloos naast elkaar op bijvoorbeeld een laptop die niet aan waanzinnige hardware-eisen hoeft te voldoen.
  • Docker-containers beïnvloeden elkaar of de host waarop ze draaien niet. Je kunt bijvoorbeeld een WordPress-installatie draaien met PHP 7, een andere met PHP 8, een database op basis van Maria­DB en een op basis van MySQL. Het proces in een container krijgt een virtueel bestandssysteem te zien waar alleen dat in staat wat het proces nodig heeft. Dat wil zeggen, de applicatie zelf en alle afhankelijkheden – in precies de juiste versie.
  • Docker-containers kun je goed verplaatsen. Eerst test je een set containers op een lokale machine, pas daarna start je ze op een server. Op enkele uitzonderingen na gedraagt een en dezelfde container zich overal hetzelfde.
  • Docker opruimen is makkelijk. Test bijvoorbeeld Java-applicaties in een container met Java en de applicatie. Je hoeft je niet bezig te houden met hoe de Java-runtime op de machine komt – of wat een Java-runtime überhaupt is. Als je een container stopt en verwijdert, blijft er niets achter op de Docker-host omdat Docker het bestandssysteem dat voor de container werd aangemaakt volledig verwijdert.

Door de populariteit van Docker zijn er bovendien erg veel kant-en-klare Docker-images beschikbaar en allerlei handige tools om Docker te beheren.

Images en containers

Een Docker image gebruik je om snel een container te maken. Images bevatten het bestandssysteem voor de container in gecomprimeerde vorm (tarbestanden).  Kant-en-klare images vind je bijvoorbeeld op Docker Hub of via dit overzicht van de beste Docker containers.

Docker image via Docker Hub

Een image voor WordPress met Apache (webserver) kan bijvoorbeeld de directorystructuur met alle WordPress-bestanden bevatten, plus de Apache-­binary, configuratiebestanden en PHP. De (SQL) database die je ook voor WordPress nodig hebt zit niet in zo’n image: elke container voert precies één proces uit, wat in dit geval de Apache-webserver is. De database moet in een andere container draaien.

Meer over Docker

Met de informatie hierboven heb je een idee van wat Docker is en waarom je het zou gebruiken. Er valt nog veel meer te vertellen over Docker, zo kun je bijvoorbeeld prima Docker op een NAS draaien voor serverdiensten, al je Docker-containers automatisch updaten en via volumes (of bind mounts) toch bestanden buiten een container bewaren.

Gebruik is gratis

Particulier of commercieel gebruik van Docker Desktop voor Windows of macOS in kleine bedrijven (<250 werknemers) is gratis. De kale Docker-deamon voor Linux zonder de grafische extra’s van Docker Desktop is volledig opensource (community-version) en kan zelfs gratis op een productieserver worden gebruikt door bedrijven van elke omvang,

Docker-instellingen

Onderdeel van Docker Desktop is een grafische interface voor instellingen. In de praktijk wordt die zelden gebruikt.

Nog meer Docker informatie en tips

Sinds ongeveer 2016 hebben we regelmatig over containertechnologie in het algemeen en Docker in het bijzonder geschreven en artikelen erover gepubliceerd. Hou de website, de nieuwsbrief en het magazine in de gaten om op de hoogte te blijven van nieuws, workshops en meer info over Docker. Je kunt alvast hiermee beginnen:

(Deze informatie is afkomstig uit het artikel in c’t 3/2022, pagina 70 met medewerking van Jan Mahn en Daniel Dupré)

Lees meer over Docker en andere handige software in c't magazine 11/2022

Deel dit artikel

Lees ook

Programmeren met Python op een Raspberry Pi Pico: hoe en wat?

Als gadget voor eenvoudige taken is de goedkopere microcontrollerboard Raspberry Pi Pico interessanter dan de gewone Raspberry Pi. In dit artikel vert...

Wat kun je met Python?

Wat kun je met Python? In dit artikel worden een aantal mogelijkheden van deze programmeertaal uitgelicht.

Interessant voor jou

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er