# Docker (software)

Docker is een computerprogramma om het bestandssysteem van de computer te virtualiseren.
Docker wordt gebruikt om softwarepakketten uit te voeren die 'containers' worden genoemd. Containers zijn geïsoleerd van elkaar door middel van containervirtualisatie, en bundelen hun eigen applicaties, tools, bibliotheken en configuratiebestanden; ze kunnen met elkaar communiceren via goed gedefinieerde kanalen. Alle containers worden uitgevoerd door een enkele kernel van het besturingssysteem en zijn dus lichter dan virtuele machines. Containers worden gemaakt van 'images' die hun precieze inhoud specificeren. Images worden vaak gemaakt door standaard images te combineren en te wijzigen die zijn gedownload van openbare archieven. Voor grote bedrijven is een betaalde licentie vereist.

## Technologie

Docker is voornamelijk ontwikkeld voor Linux, waarbij het gebruikmaakt van de resource-isolatiefuncties van de Linux-kernel, zoals cgroups en kernel-naamruimten, en een union-geschikt bestandssysteem zoals OverlayFS om onafhankelijke containers binnen een Linux-instantie, waarbij de overhead van het starten en onderhouden van virtuele machines (VM's) wordt vermeden. De ondersteuning van de Linux-kernel voor 'namespaces', isoleert de weergave van een applicatie van de besturingsomgeving, inclusief 'proces-trees', netwerk-, gebruikers-ID's en gekoppelde bestandssystemen, terwijl de 'cgroups' van de kernel bronbeperking bieden voor geheugen en processor. Sinds versie 0.9 bevat Docker de libcontainer-bibliotheek als een eigen manier om direct gebruik te maken van virtualisatiefaciliteiten van de Linux-kernel, naast het gebruik van geabstraheerde virtualisatie-interfaces via libvirt, LXC en systemd-nspawn. Sinds versie 1.5 heeft Docker IPv6-ondersteuning. Sinds mei 2022 is er een bureaubladtoepassing van Docker beschikbaar voor Linux.

## Tools

* Docker Compose is een hulpmiddel voor het definiëren en uitvoeren van Docker-toepassingen met meerdere containers. Het maakt gebruik van YAML-bestanden om de services van de applicatie te configureren en voert het creatie- en opstartproces uit van alle containers met een enkele opdracht. Met het Docker Compose CLI-hulpprogramma kunnen gebruikers opdrachten op meerdere containers tegelijk uitvoeren, bijvoorbeeld door images te maken, containers te schalen, containers te laten stoppen en nog veel meer. Opdrachten met betrekking tot beeldmanipulatie of gebruikersinteractie zijn niet relevant in Docker Compose omdat ze betrekking hebben op één container. Het bestand docker-compose.yml wordt gebruikt om de services van een toepassing te definiëren en bevat verschillende configuratie-opties. De buildoptie definieert bijvoorbeeld configuratie-opties, zoals het Dockerfile-pad, met de opdrachtoptie kan de gebruiker standaard Docker-opdrachten overschrijven en meer. De eerste publieke versie van Docker Compose (versie 0.0.1) werd uitgebracht op 21 december 2013. De eerste productieversie (1.0) is beschikbaar gesteld op 16 oktober 2014.
* Docker Swarm biedt ingebouwde clustering-functionaliteit voor Docker-containers, die een groep Docker-engines in één virtuele Docker-engine veranderen. In Docker 1.12 en hoger is de 'Swarm mode' geïntegreerd met Docker Engine. Met het hulpprogramma 'Swarm CLI' kunnen gebruikers zwermcontainers uitvoeren, 'detection tokens' maken, knooppunten in het cluster weergeven en meer. Met het 'Docker Node' CLI-hulpprogramma voor nodes kunnen gebruikers verschillende opdrachten uitvoeren om nodes in een groep (swarm) te beheren, bijvoorbeeld door nodes in een groep op te geven, nodes bij te werken en nodes uit de groep te verwijderen. Docker beheert Swarm met behulp van het Raft Consensus Algorithm. Volgens Raft moeten de meeste nodes van Swarm het eens worden over de update om deze uit te voeren.
Ook werkt Docker samen met Kubernetes voor het opzetten van virtuele clusters.

## Externe link

* Website van Docker
* Dit artikel of een eerdere versie ervan is een (gedeeltelijke) vertaling van het artikel Docker (software) op de Engelstalige Wikipedia, dat onder de licentie Creative Commons Naamsvermelding/Gelijk delen valt. Zie de bewerkingsgeschiedenis aldaar.
Referenties
* ↑ v28.0.1 (26 februari 2025). Geraadpleegd op 2 maart 2025.
* ↑ (en) Docker Now Requiring Paid Subscription for Large Businesses. InfoQ. Gearchiveerd op 29 juli 2022. Geraadpleegd op 29 juli 2022.
* ↑ (en) Docker 1.5 Brings IPv6 Support, Read-Only Containers. www.phoronix.com. Gearchiveerd op 29 juli 2022. Geraadpleegd op 29 juli 2022.
* ↑ (en) Docker Desktop for Linux finally arrives. ZDNet. Gearchiveerd op 29 juli 2022. Geraadpleegd op 29 juli 2022.
* ↑ "Release 1.0.0" GitHub. Gearchiveerd op 5 april 2023.
* ↑ "docker node" Docker.com. Gearchiveerd op 26 maart 2023.
* ↑ (en) Kubernetes Made Easy for Docker Desktop Users with New Loft vcluster Extension. finance.yahoo.com. Gearchiveerd op 29 juli 2022. Geraadpleegd op 29 juli 2022.