Waarop is Docker gebaseerd?
sobes.tech AI
Antwoord van AI
Belangrijkste kenmerken van Docker:
-
Procesisolatie: Containers zijn van nature geïsoleerd van elkaar en van het hostsysteem. Dit wordt bereikt door Linux-kernelmechanismen zoals namespaces (PID, NET, IPC, MNT, UTS) en cgroups (voor het beperken van CPU-, geheugen- en I/O-bronnen).
-
Images: Een Docker-image is een onveranderlijk, gelaagd artefact dat alles bevat wat nodig is om een applicatie uit te voeren: code, bibliotheken, afhankelijkheden, tools en configuratiebestanden. Images worden gebouwd volgens het principe van "lagen op lagen", wat hergebruik van gemeenschappelijke componenten en ruimtebesparing mogelijk maakt.
-
Containers: Een container is een lopende instantie van een image. Het is lichtgewicht, draagbaar en bevat de draaiende applicatie. Containers kunnen snel worden gestart, gestopt, verplaatst en opgeschaald.
-
Dockerfile: Het Dockerfile bevat een reeks instructies die het bouwproces van een Docker-image beschrijven. Het is een declaratieve aanpak voor het maken van images die reproduceerbaarheid en automatisering garandeert.
# Voorbeeld van Dockerfile FROM alpine:3.14 // Basis image RUN apk add --no-cache nginx // Pakketten installeren COPY html/ /usr/share/nginx/html/ // Bestanden kopiëren EXPOSE 80 // Poort openen CMD ["nginx", "-g", "daemon off;"] // Commando bij het starten van de container -
Gelaagde bestandssystemen: Docker gebruikt Union File Systems (AUFS, OverlayFS), waarmee images uit lagen kunnen worden gemaakt. Elke laag vertegenwoordigt een set wijzigingen ten opzichte van de vorige laag. Deze eigenschap maakt snelle image-creatie, caching van lagen en efficiënt gebruik van schijfruimte mogelijk.
-
Docker Registry: Docker-registries (zoals Docker Hub, GCR, ACR) worden gebruikt voor het opslaan en distribueren van Docker-images. Ze vergemakkelijken de uitwisseling van images tussen ontwikkelaars, teams en omgevingen.
-
Draagbaarheid: Images en containers zijn ontworpen om draagbaar te zijn. Een op één platform gebouwde image kan op elk ander platform worden uitgevoerd waar Docker is geïnstalleerd, zonder afhankelijkheden opnieuw te configureren.
-
Snelle opstart: Het starten van een container is veel sneller dan het starten van een virtuele machine, vanwege het ontbreken van de noodzaak om een volledig besturingssysteem te laden.
-
Efficiënt gebruik van bronnen: Containers gebruiken de bronnen van het hostsysteem efficiënter dan virtuele machines, omdat ze geen aparte CPU-kernen hoeven toe te wijzen.