Einführung
Docker ist eine leistungsstarke Plattform, die die Softwareentwicklung und -bereitstellung durch Containerisierung revolutioniert. Dieses Tutorial bietet einen umfassenden Leitfaden für Entwickler und IT-Profis, um die Grundlagen von Docker zu verstehen und ihren ersten Container erfolgreich auszuführen, wodurch effiziente und konsistente Anwendungsumgebungen auf verschiedenen Systemen ermöglicht werden.
Docker-Grundlagen
Was ist Docker?
Docker ist eine Open-Source-Plattform, die Entwicklern die Automatisierung der Anwendungsbereitstellung, Skalierung und Verwaltung durch Containerisierung ermöglicht. Sie bietet eine leichte, portable und autarke Umgebung für die Ausführung von Anwendungen.
Kernkonzepte
Container
Container sind leichte, eigenständige, ausführbare Pakete, die alles enthalten, was zum Ausführen einer Anwendung benötigt wird: Code, Laufzeitumgebung, Systemtools, Bibliotheken und Einstellungen.
graph LR
A[Anwendungskode] --> B[Container]
C[Abhängigkeiten] --> B
D[Laufzeitumgebung] --> B
Docker-Images
Docker-Images sind schreibgeschützte Vorlagen, die zum Erstellen von Containern verwendet werden. Sie dienen als Grundlage für die Containererstellung und können in Registern wie Docker Hub gespeichert werden.
Docker-Architektur
| Komponente | Beschreibung |
|---|---|
| Docker Client | Befehlszeilenschnittstelle zur Interaktion mit Docker |
| Docker Daemon | Hintergrunddienst zur Verwaltung von Docker-Objekten |
| Docker Registry | Speicher- und Verteilungssystem für Docker-Images |
Hauptvorteile
- Konsistenz: Gewährleistet identische Umgebungen zwischen Entwicklung und Produktion
- Isolierung: Trennt Anwendungen und deren Abhängigkeiten
- Effizienz: Leichtgewichtig im Vergleich zu traditionellen virtuellen Maschinen
- Skalierbarkeit: Einfache horizontale Skalierung von Anwendungen
Anwendungsfälle
- Bereitstellung von Microservices
- Continuous Integration/Continuous Deployment (CI/CD)
- Cloud-native Anwendungsentwicklung
- Entwicklungs- und Testumgebungen
Erste Schritte mit LabEx
Für praxisnahes Lernen und praktische Erfahrungen mit Docker bietet LabEx interaktive Umgebungen, um die Containerisierungstechnologien zu meistern.
Docker vs. traditionelle Virtualisierung
graph TD
A[Traditionelle Virtualisierung] --> B[Vollständiges Betriebssystem für jede Anwendung]
A --> C[Hoher Ressourcenverbrauch]
D[Docker-Containerisierung] --> E[Gemeinsamer Betriebssystemkern]
D --> F[Leichte Container]
Mit dem Verständnis dieser Grundlagen sind Sie gut vorbereitet, um sich mit Docker zu befassen und seine leistungsstarken Containerisierungsmöglichkeiten zu nutzen.
Einrichtung und Konfiguration
Systemvoraussetzungen
Bevor Sie Docker installieren, stellen Sie sicher, dass Ihr Ubuntu 22.04-System die folgenden Anforderungen erfüllt:
- 64-Bit-Betriebssystem
- Linux-Kernel 3.10 oder höher
- Mindestens 2 GB RAM
- Ausreichend Speicherplatz
Installationsmethoden
Methode 1: Offizielles Docker-Repository
## Paketindex aktualisieren
sudo apt-get update
## Notwendige Pakete installieren
sudo apt-get install ca-certificates curl gnupg lsb-release
## Offiziellen GPG-Schlüssel von Docker hinzufügen
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
## Stabiles Repository einrichten
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
## Docker Engine installieren
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Methode 2: Komfort-Skript
## Docker-Installations-Skript herunterladen und ausführen
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Konfiguration nach der Installation
Benutzergruppenkonfiguration
## Aktuellen Benutzer zur Docker-Gruppe hinzufügen
sudo usermod -aG docker $USER
## Installation überprüfen
docker --version
Docker-Konfigurationsdateien
| Dateipfad | Zweck |
|---|---|
/etc/docker/daemon.json |
Docker-Daemon-Konfiguration |
~/.docker/config.json |
Benutzer-spezifische Docker-Einstellungen |
Docker Compose Installation
## Docker Compose herunterladen
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
## Ausführungsrechte vergeben
sudo chmod +x /usr/local/bin/docker-compose
## Installation überprüfen
docker-compose --version
Verifikationsablauf
graph TD
A[Docker installieren] --> B[Benutzer zur Docker-Gruppe hinzufügen]
B --> C[Docker-Version überprüfen]
C --> D[Testcontainer ausführen]
D --> E[Erfolgreiche Einrichtung bestätigen]
Docker-Installation testen
## hello-world Container ausführen
sudo docker run hello-world
LabEx Empfehlung
Für umfassendes Docker-Lernen und praktische Übungen bietet LabEx interaktive Umgebungen, die Sie durch praktische Docker-Konfigurationen und Anwendungsfälle führen.
Häufige Fehlerbehebung
- Docker-Dienst neu starten:
sudo systemctl restart docker - Docker-Status überprüfen:
sudo systemctl status docker - Netzwerkverbindung überprüfen:
docker info
Ausführung des ersten Containers
Grundlegende Docker-Befehle
Abrufen eines Images
## Ubuntu-Image von Docker Hub abrufen
docker pull ubuntu:latest
Befehle für den Container-Lebenszyklus
| Befehl | Beschreibung |
|---|---|
docker run |
Erstellen und Starten eines neuen Containers |
docker ps |
Liste der laufenden Container |
docker ps -a |
Liste aller Container |
docker start |
Einen gestoppten Container starten |
docker stop |
Einen laufenden Container stoppen |
Interaktive Container-Ausführung
## Ubuntu-Container interaktiv ausführen
docker run -it ubuntu:latest /bin/bash
Container-Modi
graph LR
A[Container-Modi] --> B[Interaktiver Modus]
A --> C[Abgekoppelter Modus]
A --> D[Vordergrund-Modus]
A --> E[Hintergrund-Modus]
Beispiel für den abgekoppelten Modus
## Nginx-Webserver im Hintergrund ausführen
docker run -d -p 80:80 nginx:latest
Portweiterleitung
## Container-Port auf Host-Port weiterleiten
docker run -d -p 8080:80 nginx:latest
Volume-Mount
## Host-Verzeichnis in Container mounten
docker run -v /host/path:/container/path ubuntu:latest
Umgebungsvariablen
## Umgebungsvariablen setzen
docker run -e MYSQL_ROOT_PASSWORD=secret mysql:latest
Container-Verwaltung
## Einen Container entfernen
docker rm container_name
## Alle gestoppten Container entfernen
docker container prune
Erweiterte Container-Operationen
Container inspizieren
## Containerdetails anzeigen
docker inspect container_name
## Container-Logs anzeigen
docker logs container_name
Best Practices
- Verwenden Sie offizielle Images.
- Halten Sie Container leichtgewichtig.
- Verwenden Sie spezifische Image-Tags.
- Implementieren Sie angemessene Ressourcenlimits.
LabEx Lern-Empfehlung
LabEx bietet umfassende Docker-Container-Management-Tutorials, um praktische Container-Fähigkeiten zu erlernen.
Container-Workflow
graph TD
A[Image abrufen] --> B[Container erstellen]
B --> C[Container starten]
C --> D[Container interagieren/verwenden]
D --> E[Container stoppen]
E --> F[Container entfernen]
Häufige Szenarien
| Szenario | Docker-Befehl |
|---|---|
| Webserver | docker run -d -p 80:80 nginx |
| Datenbank | docker run -d mysql:latest |
| Python-App | docker run -it python:3.9 |
Tipps zur Fehlerbehebung
- Containerstatus überprüfen:
docker ps - Container-Logs anzeigen:
docker logs - Container neu starten:
docker restart
Zusammenfassung
Durch die Durchführung dieses Tutorials haben Sie die grundlegenden Schritte zur Einrichtung von Docker, der Konfiguration Ihrer Umgebung und der Ausführung Ihres ersten Containers erlernt. Docker bietet eine robuste Lösung für die Verpackung, Verteilung und Bereitstellung von Anwendungen. Entwickler können damit portable und skalierbare Softwarelösungen mit minimaler Konfiguration und maximaler Konsistenz über verschiedene Computing-Umgebungen hinweg erstellen.



