Docker (software)

Docker is een computerprogramma om het bestandssysteem van de computer te virtualiseren.

Docker
Logo
Ontwerper(s) Solomon Hykes
Ontwikkelaar(s) Docker, Inc.
Uitgebracht 2013
Recentste versie 26.1.0 (22 april 2024)[1] Bewerken op Wikidata
Status Actief
Besturingssysteem Linux, Windows, macOS
Geschreven in Go
Categorie Virtualisatiesoftware
Licentie(s) propriëtaire licentie
Versiebeheer
Website docker.com
Portaal  Portaalicoon   Informatica

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.[2]

Technologie bewerken

Docker is voornamelijk ontwikkeld voor Linux, waarbij het gebruik maakt 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.[3] Sinds mei 2022 is er een bureaubladtoepassing van Docker beschikbaar voor Linux.[4]

Tools bewerken

  • 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.[5]
  • 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.[6] 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.[7]

Externe link bewerken