Wat is Docker en waarom zou je het gebruiken?

Daniel Dupré
0

Inhoudsopgave

    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 en waarom zou je het gebruiken


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

    Ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.

     

    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.

    Hoe gebruik je Docker?

    Het makkelijkst gebruik je containers met Linux als basis, op een computer (host) die ook op 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.

    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.

    Docker images & 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.

    Wat kan ik doen met 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.

    Het gebruik van Docker 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 een artikel in c’t magazine, dat geschreven is door Jan Mahn en Daniel Dupré)

    Lees meer over Docker & andere software in c't 05/2024

    Deel dit artikel

    Daniel Dupré
    Daniel DupréDaniel koestert een liefde voor het in elkaar zetten van zinnen en van computers, en heeft in c't een prachtige mogelijkheid gevonden om beide te combineren.

    Lees ook

    Dit kun je verwachten als je ChatGPT als hacking-tool wilt gebruiken

    Kun je ChatGPT gebruiken als hacking-tool? We neigden naar de duistere kant en onderzochten of de assistentie van een AI van elke scriptkiddie een eli...

    Raspberry Pi GPIO pinnen: een overzicht van de aansluitingen

    Een kleine Raspberry Pi board is zo volgepakt met alle componenten dat er geen ruimte meer over was om de 40 GPIO pinnen van informatie te voorzien. O...

    0 Praat mee
    avatar
      Abonneer  
    Laat het mij weten wanneer er