Docker-Tutorial
Docker ist eine Open-Source-Anwendungscontainer-Engine, die aufGo-Sprachebasiert und unter der Apache 2.0-Lizenz quelloffen ist.
Docker ermöglicht Entwicklern, ihre Anwendungen und Abhängigkeiten in einen leichten, portablen Container zu verpacken, der dann auf jede gängige Linux-Maschine verteilt werden kann und auch Virtualisierung ermöglicht.
Container nutzen vollständig einen Sandbox-Mechanismus, ohne Schnittstellen zwischen ihnen (ähnlich wie iPhone-Apps). Noch wichtiger: Container haben extrem geringen Performance-Overhead.
Nach Version 17.03 wird Docker in CE (Community Edition) und EE (Enterprise Edition) unterteilt. Wir können einfach die Community Edition verwenden.
Für wen ist dieses Tutorial?
Dieses Tutorial eignet sich für Betriebsingenieure und Backend-Entwickler. In diesem Tutorial lernen Sie Schritt für Schritt, wie man Docker verwendet.
Voraussetzungen für das Lesen dieses Tutorials
Bevor Sie dieses Tutorial lesen, müssen Sie gängige Linux-Befehle beherrschen. Sie können dasLinux-Tutorialdieser Website nutzen, um die zugehörigen Befehle zu lernen.
Docker-Anwendungsszenarien
Microservices-Architektur:Jeder Dienst wird unabhängig containerisiert, was Verwaltung und Skalierung erleichtert.
CI/CD-Pipeline:Integriert sich mit Jenkins/GitLab CI, um automatisierte Builds und Tests zu ermöglichen.
Standardisierte Entwicklungsumgebung:Neue Mitglieder können den kompletten Satz abhängiger Dienste (wie Datenbanken, Nachrichtenwarteschlangen) mit einem Klick starten.
Cloud-native-Grundlagen:Orchestrierungstools wie Kubernetes verwalten Container-Cluster auf Docker-Basis.
Kernvorteile
- Plattformübergreifende Konsistenz:Löst das Problem „Bei mir läuft es“, indem Konsistenz über Entwicklungs-, Test- und Produktionsumgebungen hinweg gewährleistet wird.
- Ressourceneffizienz:Container teilen sich direkt den Host-Kernel, wodurch das Virtualisieren des gesamten Betriebssystems entfällt, was Speicher und CPU spart.
- Schnelle Bereitstellung:Container starten in Sekunden und unterstützen automatisches Skalieren und Verkleinern.
- Isolation:Jeder Container verfügt über ein eigenes unabhängiges Dateisystem, Netzwerk und Prozessraum.
Kernkonzepte
- Container:Leichtgewichtige Laufzeitinstanzen, die Anwendungscode, Laufzeitumgebung und Abhängigkeitsbibliotheken enthalten. Auf Basis von Images erstellt, von anderen Containern isoliert, mit gemeinsam genutztem Host-Betriebssystem-Kernel (effizienter als virtuelle Maschinen).
- Image:Schreibgeschützte Vorlage, die die Laufzeitumgebung des Containers definiert (wie Betriebssystem, Softwarekonfiguration usw.). Verwendet geschichtete Speicherung (Layer) zur Optimierung von Speicherplatz und Build-Geschwindigkeit.
- Dockerfile:Eine Textdatei, die beschreibt, wie Images automatisch erstellt werden (zum Beispiel Angabe eines Basis-Images, Installation von Software, Kopieren von Dateien usw.).
- Registry:Eine Plattform zum Speichern und Verteilen von Images, wie Docker Hub (offizielles öffentliches Repository) oder private Repositories (wie Harbor).
Grundlegende Befehle
Beispiel
docker pull nginx
# Container ausführen (-d im Hintergrund ausführen, -p Ports zuordnen)
docker run -d -p 80:80 nginx
# Laufende Container auflisten
docker ps
# Image erstellen (basierend auf dem Dockerfile im aktuellen Verzeichnis)
docker build -t my-app .
# Den Container betreten
docker exec -it <Container-ID> /bin/bash
Verwandte Links
Offizielle Docker-Website:https://www.docker.com
GitHub Docker-Quellcode:https://github.com/docker
Weitere Erweiterungen