Auf welchen Schlüsselfunktionen basiert Docker?
sobes.tech KI
Antwort von AI
Wesentliche Merkmale von Docker:
-
Prozessisolierung: Container sind von Natur aus voneinander und vom Host-System isoliert. Dies wird durch Linux-Kernel-Mechanismen wie Namespaces (PID, NET, IPC, MNT, UTS) und cgroups (zur Begrenzung von CPU-, Speicher- und I/O-Ressourcen) erreicht.
-
Images: Ein Docker-Image ist ein unveränderliches, schichtbasiertes Artefakt, das alles enthält, was zur Ausführung einer Anwendung erforderlich ist: Code, Bibliotheken, Abhängigkeiten, Werkzeuge und Konfigurationsdateien. Images werden nach dem Prinzip "Schichten über Schichten" gebaut, was die Wiederverwendung gemeinsamer Komponenten und die Platzersparnis ermöglicht.
-
Container: Ein Container ist eine laufende Instanz eines Images. Es ist leichtgewichtig, portabel und enthält die laufende Anwendung. Container können schnell gestartet, gestoppt, verschoben und skaliert werden.
-
Dockerfile: Die Dockerfile enthält eine Reihe von Anweisungen, die den Build-Prozess eines Docker-Images beschreiben. Es ist ein deklarativer Ansatz zur Erstellung von Images, der Reproduzierbarkeit und Automatisierung gewährleistet.
# Beispiel Dockerfile FROM alpine:3.14 // Basis-Image RUN apk add --no-cache nginx // Pakete installieren COPY html/ /usr/share/nginx/html/ // Dateien kopieren EXPOSE 80 // Port öffnen CMD ["nginx", "-g", "daemon off;"] // Befehl beim Starten des Containers -
Schichtbasiertes Dateisystem: Docker verwendet Union File Systems (AUFS, OverlayFS), die es ermöglichen, Images aus Schichten zu erstellen. Jede Schicht stellt eine Reihe von Änderungen im Vergleich zur vorherigen Schicht dar. Diese Eigenschaft ermöglicht es, Images schnell zu erstellen, Schichten zu cachen und den Festplattenspeicher effizient zu nutzen.
-
Docker-Registry: Docker-Registries (wie Docker Hub, GCR, ACR) werden zum Speichern und Verteilen von Docker-Images verwendet. Sie erleichtern den Austausch von Images zwischen Entwicklern, Teams und Umgebungen.
-
Portabilität: Images und Container sind so konzipiert, dass sie portabel sind. Ein auf einer Plattform erstelltes Image kann auf jeder anderen Plattform ausgeführt werden, auf der Docker installiert ist, ohne Abhängigkeiten neu konfigurieren zu müssen.
-
Schneller Start: Das Starten eines Containers ist deutlich schneller als das Starten einer virtuellen Maschine, da kein vollständiges Betriebssystem geladen werden muss.
-
Effiziente Ressourcennutzung: Container nutzen die Ressourcen des Host-Systems effizienter als virtuelle Maschinen, da sie keine separaten CPU-Kerne zuweisen müssen.