Inleiding tot Docker - Iemand005/IT-Landscape GitHub Wiki

Inleiding tot Docker

Docker is een container systeem wat kan draaien op een hypervisor of virtuele machine. Het doel van Docker is om programma's in containers uit te voeren om ervoor te zorgen dat ze afgezonderd worden uitgevoerd. De containers van Docker worden altijd op hetzelfde onderliggend besturingssysteem gedraaid, wat ook de reden is voor het gebruik van een virtuele machine of hypervisor.

Wat is een hypervisor

Een type 1 hypervisor is een systeem dat boven de besturingssystemen ligt. Het verdeeld de aanroepen van het besturingssysteem naar de hardware zonder dat het besturingssysteem dit door heeft. Zo kan de hypervisor verschillende besturingssystemen naast elkaar uitvoeren zonder dat deze elkaar kunnen zien. Hypervisor's zijn dus sneller dan virtuele machines, omdat ze de hardware niet nabootsen, maar het besturingssysteem rechtstreeks toegang geven tot hun deel van de hardware.

Dus is een container een besturingssysteem op de hypervisor??

NEEN, Hypervisor's zonderen besturingssystemen af van elkaar. Containers zonderen software af die op deze besturingssystemen draait.

Docker voert dus een gesloten besturingssysteem (Linux) uit op de hardware naast het besturingssysteem dat je al gebruikt (zoals Windows). Op dit afgezonderd besturingssysteem worden dan de individuele containers ook nog eens afgezonderd van elkaar. Docker maakt dus gebruik van een type 1 hypervisor.

De meest gebruikte hypervisors zijn:

  • Hyper-V (Windows)
  • KVM (Linux)
  • HyperKit (Mac OS)

Hyper-V is ontwikkeld door Microsoft en kan als optioneel onderdeel toegevoegd aan elke Windows installatie. De hypervisor kan enkel worden uitgevoerd op Windows 8 of hoger, Windows 7 kan verbinding maken met een externe computers met Hyper-V maar de lokale hypervisor kan hieruit niet beheerd worden.

Op Windows heb je twee keuzes, WSL2 of Hyper-V. Eigenlijk is dit bijna hetzelfde. WSL2 wordt namelijk uitgevoerd op Hyper-V (vereist Windows 10 1903 of hoger) en is dus eigenlijk geen echt subsysteem meer. WSL1 (Windows 10 1607 of hoger) is wel een echt subsysteem en word niet op de hypervisor uitgevoerd. Als je WSL2 kiest om Docker op uit te voeren zal Docker Microsofts Linux kernel gebruiken. Als je Hyper-V kiest gaat Docker zelf een Linux kernel installeren zonder de WSL2 laag ertussen.

Waarom gebruikt Docker een hypervisor

Docker gebruikt een hypervisor zodat deze zelf een besturingssysteem kan uitvoeren. Dit heeft als voordeel dat op alle computers waarop dit besturingssysteem

Containers

Containers zijn afgezonderde delen op het besturingssysteem. Zo kunnen meerdere programma's naast elkaar draaien op hetzelfde onderliggend besturingssysteem maar ze kunnen elkaar niet zien. Voorbeelden hiervan zijn:

  • UWP (voorheen Metro)
  • Android en iOS apps
  • Docker containers

De container beheerder, zoals Docker, gaat dus elk programma als een aparte gebruiker uitvoeren en deze gebruiker enkel tot specifiek geselecteerde mappen en bestanden toegang geven. Zo kan een container enkel aan zijn eigen bestanden.

Images

Docker images zijn kopïeen van Docker containers. Deze images zijn rauwe kopieën en kunnen gebruikt worden om de hele container op een andere computer the zetten.

Dockerfile

Dockerfile is een configuartie bestand voor docker. Het kan een lijst van instructies en commando's bevatten.

Meer info over Dockerfile

Docker Hub

Docker Hub is een repository voor Docker images.