Einführung
Dieses umfassende Docker-Container-Tutorial bietet Entwicklern und IT-Experten eine grundlegende Anleitung zum Verständnis, zur Installation und Verwaltung von containerisierten Anwendungen. Durch die Erkundung zentraler Container-Konzepte, Installationsverfahren und praktischer Befehle erwerben die Lernenden praktische Fähigkeiten in modernen Software-Bereitstellungstechnologien.
Grundlagen von Docker-Containern
Einführung in die Containertechnologie
Docker-Container stellen einen revolutionären Ansatz für die Softwarebereitstellung und Anwendungsverwaltung dar. Containerisierung ermöglicht es Entwicklern, Anwendungen mit ihrer gesamten Laufzeitumgebung zu verpacken und so eine konsistente Leistung auf verschiedenen Computing-Plattformen sicherzustellen.
Kernkonzepte von Docker-Containern
Docker-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. Im Gegensatz zu traditionellen virtuellen Maschinen teilen Container den Kernel des Hostsystems, was sie effizienter und schneller in der Ausführung macht.
graph TD
A[Anwendungskode] --> B[Docker-Container]
B --> C[Konsistente Bereitstellung]
B --> D[Isolierte Umgebung]
Hauptmerkmale von Containern
| Merkmal | Beschreibung |
|---|---|
| Portabilität | Konsistente Ausführung in verschiedenen Umgebungen |
| Leichtgewichtigkeit | Minimale Ressourcenbeanspruchung |
| Skalierbarkeit | Einfache Replikation und Skalierung |
| Isolation | Getrennte Anwendungsumgebungen |
Installation von Docker-Containern auf Ubuntu 22.04
## 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 | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
## Stable-Repository einrichten
echo "deb [arch=$(dpatch -s)] $(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
Grundlegende Docker-Container-Befehle
## Ubuntu-Image herunterladen
docker pull ubuntu:latest
## Interaktiven Container starten
docker run -it ubuntu:latest /bin/bash
## Laufende Container auflisten
docker ps
## Alle Container auflisten
docker ps -a
Anwendungsfälle für Docker-Container
Docker-Container eignen sich ideal für Microservices-Architekturen, Continuous Integration/Continuous Deployment (CI/CD), Cloud-native Anwendungen und die Standardisierung von Entwicklungs-Umgebungen.
Container-Konnektivität
Docker Netzwerkarchitektur
Docker bietet mehrere Netzwerkmodi, die es Containern ermöglichen, miteinander und mit externen Netzwerken zu kommunizieren. Das Verständnis dieser Konnektivitätsmethoden ist entscheidend für eine effektive Containerverwaltung und Anwendungsbereitstellung.
graph LR
A[Docker Host] --> B[Bridge-Netzwerk]
B --> C[Container 1]
B --> D[Container 2]
A --> E[Host-Netzwerk]
A --> F[Overlay-Netzwerk]
Netzwerktypen in Docker
| Netzwerktyp | Beschreibung | Anwendungsfall |
|---|---|---|
| Bridge | Standard-Netzwerkmodus | Isolierte Containerkommunikation |
| Host | Direkter Hostnetzwerkzugriff | Hochleistungs-Szenarien |
| Overlay | Netzwerkkommunikation zwischen Hosts | Verteilte Systeme |
| Macvlan | Direkte physische Netzwerkverbindung | Netzwerk-spezifische Anforderungen |
Erstellen benutzerdefinierter Docker-Netzwerke
## Bridge-Netzwerk erstellen
docker network create --driver bridge my_custom_network
## Verfügbare Netzwerke auflisten
docker network ls
## Netzwerkdetails anzeigen
docker network inspect my_custom_network
Methoden der Containernetzwerk-Konnektivität
## Container mit spezifischem Netzwerk starten
docker run -d --name web_server --network my_custom_network nginx
## Laufenden Container an Netzwerk anbinden
docker network connect my_custom_network existing_container
## Container vom Netzwerk trennen
docker network disconnect my_custom_network existing_container
Portweiterleitung und -freigabe
## Containerport auf Hostport weiterleiten
docker run -p 8080:80 nginx
## Mehrere Ports freigeben
docker run -p 8080:80 -p 443:443 web_application
Zugriff auf die Containershell
## Interaktiver Shell-Zugriff
docker exec -it container_name /bin/bash
## Befehl im laufenden Container ausführen
docker exec container_name ls /app
Kommunikationstechniken zwischen Containern
Container können über folgende Methoden kommunizieren:
- Gemeinsame Netzwerke
- Umgebungsvariablen
- Volume-Mounts
- Docker Compose-Konfigurationen
Container-Verwaltung
Container-Lebenszyklusverwaltung
Docker-Container haben verschiedene Lebenszyklusphasen, die systematische Verwaltung und Überwachung erfordern. Das Verständnis dieser Phasen ermöglicht eine effiziente Containerbereitstellung und Wartung.
graph LR
A[Image ziehen] --> B[Container erstellen]
B --> C[Container starten]
C --> D[Container läuft]
D --> E[Container stoppen]
E --> F[Container entfernen]
Container-Lebenszyklusbefehle
| Befehl | Funktion | Beispiel |
|---|---|---|
| docker pull | Image herunterladen | docker pull ubuntu |
| docker create | Container erstellen | docker create nginx |
| docker start | Container starten | docker start container_id |
| docker stop | Container stoppen | docker stop container_id |
| docker rm | Container entfernen | docker rm container_id |
Container-Ressourcenverwaltung
## Laufende Container mit Ressourcenverbrauch auflisten
docker stats
## Containerressourcen begrenzen
docker run -d --cpus=1 --memory=512m nginx
## Containerressourcen aktualisieren
docker update --cpus=2 --memory=1g container_name
Container-Überwachungsmethoden
## Container-Logs anzeigen
docker logs container_name
## Echtzeit-Log-Überwachung
docker logs -f container_name
## Container-Metadaten anzeigen
docker inspect container_name
Container-Backup und -Wiederherstellung
## Container-Imagesnapshot erstellen
docker commit container_name backup_image
## Container in Tar-Archiv exportieren
docker export container_name > container_backup.tar
## Container aus Archiv importieren
docker import container_backup.tar restored_image
Erweiterte Containerverwaltung
## Nicht verwendete Container bereinigen
docker container prune
## Alle gestoppten Container entfernen
docker rm $(docker ps -a -q)
## Hängende Images bereinigen
docker image prune
Grundlagen der Container-Orchestrierung
Docker Swarm und Kubernetes bieten erweiterte Containerverwaltungsfunktionen für Skalierung, Lastverteilung und automatisierte Bereitstellung über mehrere Hosts.
Zusammenfassung
Docker-Container stellen einen leistungsstarken Ansatz für die Softwarebereitstellung dar und bieten beispiellose Portabilität, Effizienz und Skalierbarkeit. Durch die Beherrschung der Containertechnologie können Entwickler konsistente, isolierte Umgebungen erstellen, die die Anwendungsentwicklung, -prüfung und -workflows in der Produktion über verschiedene Computing-Plattformen hinweg optimieren.



