Einführung
Docker hat die Softwareentwicklung revolutioniert, indem es eine leistungsstarke Plattform für die Containerisierung bietet. Dieses Tutorial führt Sie durch die grundlegenden Schritte beim Bereitstellen Ihres ersten Docker-Images und hilft Entwicklern und IT-Experten, die grundlegenden Konzepte und die praktische Implementierung von Docker-Containern zu verstehen.
Docker-Grundlagen
Was ist Docker?
Docker ist eine Open-Source-Plattform, die die Bereitstellung, Skalierung und Verwaltung von Anwendungen mithilfe der Containerisierungstechnologie automatisiert. Sie ermöglicht es Entwicklern, eine Anwendung mit allen Abhängigkeiten in einer standardisierten Einheit, einem Container, zu verpacken.
Wichtige Docker-Konzepte
Container
Ein Container ist ein leichtgewichtiges, eigenständiges, ausführbares Paket, das alles enthält, was zum Ausführen einer Anwendung benötigt wird: Code, Laufzeitumgebung, Systemtools, Bibliotheken und Einstellungen.
graph TD
A[Anwendungskode] --> B[Container]
C[Abhängigkeiten] --> B
D[Systembibliotheken] --> B
E[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 | Speicherung und Verteilungssystem für Docker-Images |
Warum Docker verwenden?
- Konsistenz in verschiedenen Umgebungen
- Leichtgewichtige und schnelle Bereitstellung
- Einfache Skalierbarkeit
- Verbesserte Ressourcenauslastung
- Vereinfachte Konfigurationsverwaltung
Docker-Installation unter Ubuntu 22.04
Um Docker unter Ubuntu zu installieren, verwenden Sie die folgenden Befehle:
## Paketindex aktualisieren
sudo apt update
## Abhängigkeiten installieren
sudo apt install apt-transport-https ca-certificates curl software-properties-common
## 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 update
sudo apt install docker-ce docker-ce-cli containerd.io
Überprüfung der Docker-Installation
Überprüfen Sie nach der Installation, ob Docker korrekt funktioniert:
## Docker-Version prüfen
docker --version
## hello-world Container ausführen
sudo docker run hello-world
Docker-Workflow
graph LR
A[Entwicklung] --> B[Image erstellen]
B --> C[In Registry pushen]
C --> D[Image ziehen]
D --> E[Container ausführen]
Erste Schritte mit LabEx
LabEx bietet interaktive Docker-Lernumgebungen, die Entwicklern helfen, Containerisierungstechnologien effektiver zu üben und zu verstehen.
Umgebungsaufbau
Systemvoraussetzungen
Bevor Sie die Docker-Umgebung einrichten, stellen Sie sicher, dass Ihr System die folgenden Anforderungen erfüllt:
| Anforderung | Spezifikation |
|---|---|
| Betriebssystem | Ubuntu 22.04 LTS |
| Prozessor | 64-Bit-Prozessor |
| Arbeitsspeicher | Mindestens 4 GB |
| Speicherplatz | 20 GB freier Speicherplatz |
Systemvorbereitung
Systempakete aktualisieren
sudo apt update
sudo apt upgrade -y
Notwendige Abhängigkeiten installieren
sudo apt install -y \
ca-certificates \
curl \
gnupg \
lsb-release \
software-properties-common
Docker-Installationsmethoden
graph LR
A[Docker-Installation] --> B[Installation über Repository]
A --> C[Manuelle Paketinstallation]
A --> D[Installation über Skript]
Installation über Repository (empfohlen)
Docker's offiziellen GPG-Schlüssel hinzufügen
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Repository einrichten
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker-Pakete installieren
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Konfiguration nach der Installation
Benutzer zur Docker-Gruppe hinzufügen
sudo usermod -aG docker $USER
Docker beim Systemstart starten konfigurieren
sudo systemctl enable docker
sudo systemctl start docker
Installationsüberprüfung
Docker-Version prüfen
docker --version
docker compose version
Hello-World-Container ausführen
sudo docker run hello-world
Docker Compose-Einrichtung
Docker Compose installieren
sudo apt install docker-compose
Empfohlene Tools
| Tool | Zweck |
|---|---|
| Docker Desktop | GUI zur Docker-Verwaltung |
| Visual Studio Code | IDE mit Docker-Erweiterung |
| Docker Hub | Repository für Container-Images |
Empfohlene LabEx-Umgebung
LabEx bietet vorkonfigurierte Docker-Umgebungen, die den Einrichtungs- und Lernprozess vereinfachen und Anfängern den Einstieg in die Containerisierungstechnologien erleichtern.
Fehlerbehebung bei häufigen Installationsfehlern
Mögliche Probleme
- Inkompatible Systemarchitektur
- Veraltete Systempakete
- Unzureichende Berechtigungen
- Netzwerkverbindungsprobleme
Empfohlene Lösungen
- Stellen Sie sicher, dass das System die Mindestanforderungen erfüllt.
- Aktualisieren Sie die Systempakete regelmäßig.
- Überprüfen Sie die Internetverbindung.
- Überprüfen Sie die Benutzerberechtigungen.
- Konsultieren Sie die offizielle Docker-Dokumentation.
Erste Container-Bereitstellung
Verständnis der Containerbereitstellung
Containerbereitstellungs-Workflow
graph LR
A[Bild auswählen] --> B[Bild ziehen]
B --> C[Container erstellen]
C --> D[Container starten]
D --> E[Container verwalten]
Ziehen von Docker-Images
Offizielle Docker Hub-Images
## Ubuntu-Image ziehen
docker pull ubuntu:latest
## Nginx-Webserver-Image ziehen
docker pull nginx:latest
## Python-Entwicklungs-Image ziehen
docker pull python:3.9
Ausführen des ersten Containers
Grundlegende Container-Ausführung
## Ubuntu-Container ausführen
docker run -it ubuntu:latest /bin/bash
## Nginx-Webserver ausführen
docker run -d -p 8080:80 nginx:latest
## Interaktiven Python-Container ausführen
docker run -it python:3.9 python
Container-Verwaltungsbefehle
| Befehl | Beschreibung |
|---|---|
docker ps |
Liste der laufenden Container |
docker ps -a |
Liste aller Container |
docker start <container_id> |
Angehaltenen Container starten |
docker stop <container_id> |
Laufenden Container stoppen |
docker rm <container_id> |
Container entfernen |
Erstellen eines benutzerdefinierten Containers
Dockerfile-Beispiel
## Verwendung des offiziellen Python-Basis-Images
FROM python:3.9
## Arbeitsverzeichnis setzen
WORKDIR /app
## Anwendungsdateien kopieren
COPY . /app
## Abhängigkeiten installieren
RUN pip install flask
## Port freigeben
EXPOSE 5000
## Startbefehl definieren
CMD ["python", "app.py"]
Erstellen und Ausführen des benutzerdefinierten Images
## Docker-Image erstellen
docker build -t myapp:v1 .
## Benutzerdefinierten Container ausführen
docker run -p 5000:5000 myapp:v1
Container-Networking
graph TD
A[Container] -->|Portweiterleitung| B[Host-Netzwerk]
B -->|Dienste freigeben| C[Externer Zugriff]
Beispiel für Portweiterleitung
## Container-Port 80 auf Host-Port 8080 weiterleiten
docker run -d -p 8080:80 nginx:latest
Container-Volumes
Volumenverwaltung
## Benannte Volume erstellen
docker volume create mydata
## Volume an Container mounten
docker run -v mydata:/data ubuntu:latest
Best Practices
- Verwenden Sie offizielle Images.
- Minimieren Sie die Imagegröße.
- Implementieren Sie mehrstufige Builds.
- Verwenden Sie spezifische Image-Tags.
- Vermeiden Sie die Ausführung von Containern als root.
Container-Überwachung
## Container-Logs anzeigen
## Ressourcenverbrauch überwachen
## Containerdetails anzeigen
LabEx-Lernumgebung
LabEx bietet interaktive Docker-Labs, die Entwicklern helfen, Container-Bereitstellungstechniken in einer praktischen, geführten Umgebung zu üben.
Erweiterte Bereitstellungstechniken
| Technik | Beschreibung |
|---|---|
| Docker Compose | Orchestrierung von Multi-Containern |
| Kubernetes | Skalierung und Verwaltung von Containern |
| Docker Swarm | Native Docker-Clustering |
Zusammenfassung
Durch die erfolgreiche Durchführung dieses Tutorials haben Sie wertvolle Einblicke in die Docker-Containerisierung gewonnen, die Einrichtung einer Docker-Umgebung erlernt und Ihren ersten Container erfolgreich bereitgestellt. Diese grundlegenden Fähigkeiten werden Sie befähigen, die Möglichkeiten von Docker für komplexere Anwendungsbereitstellungen und -verwaltung in realen Szenarien zu nutzen.



