Einführung
Docker isoliert Anwendungen in Containern. Ohne korrekt eingerichtete Netzwerke können Container nicht miteinander kommunizieren, und ohne Volumes gehen Daten verloren.
In diesem Artikel lernen Sie:
- Docker-Netzwerktypen (
bridge,host,overlay) - Kommunikation zwischen Containern
- Dauerhafte Datenspeicherung mit Volumes
- Unterschiede zwischen
bind mountundnamed volume - Automatisierung mit
docker-compose - Backup- und Wiederherstellungsstrategien
Am Ende dieses Leitfadens können Sie stabile Netzwerke und Speicherstrukturen sowohl lokal als auch in Multi-Node-Umgebungen erstellen.
Voraussetzungen
- Linux/macOS oder Windows mit Docker Desktop
- Docker Engine v24+
- Grundkenntnisse im Terminal
- Internetzugang
Hinweis: Alle Befehle werden mit einem Benutzer mit
sudo-Rechten ausgeführt.
Schritt 1 — Docker-Netzwerktypen
Liste anzeigen:
docker network ls
🔹 bridge (Standard)
docker run -dit --name web1 nginx
docker exec -it web1 ip a
Benutzerdefiniertes Bridge-Netzwerk
docker network create --driver bridge my_bridge
docker run -dit --name nginx1 --network my_bridge nginx
docker run -dit --name nginx2 --network my_bridge alpine sh
docker exec -it nginx2 ping nginx1
Container im selben Netzwerk können sich über Namen erreichen.
🔸 host Netzwerk
docker run --rm -d --network host nginx
Keine Portweiterleitung erforderlich. Sicherheitsrisiko beachten.
🔸 overlay Netzwerk
Erfordert Docker Swarm:
docker swarm init
docker network create -d overlay --attachable app_overlay
Overlay-Netzwerke nutzen VXLAN-Tunneling.
Andere: macvlan & none
macvlan: Echte MAC- und IP-Zuweisungnone: Kein Netzwerk
Schritt 2 — Datenpersistenz mit Volumes
🟦 Named Volume
docker volume create app_data
docker run -d -v app_data:/usr/share/nginx/html nginx
🟧 Bind Mount
mkdir -p ~/data
echo "Hallo Docker" > ~/data/index.html
docker run -d -v ~/data:/usr/share/nginx/html -p 8080:80 nginx
Schritt 3 — Vergleich
| Eigenschaft | Named Volume | Bind Mount |
|---|---|---|
| Leistung | Optimiert | Abhängig vom Host |
| Sicherheit | Hoch | Erfordert Root |
| Backup | Einfach | Komplex |
| Flexibilität | Niedrig | Hoch |
| Portabilität | Hoch | Niedrig |
Schritt 4 — Backup & Wiederherstellung
Backup
docker run --rm -v app_data:/volume -v $(pwd):/backup busybox tar czf /backup/app_data.tar.gz /volume
Wiederherstellung
docker run --rm -v app_data:/restore -v $(pwd):/backup busybox tar xzf /backup/app_data.tar.gz -C /
Schritt 5 — Compose-Beispiel
version: "3.8"
services:
web:
image: nginx
volumes:
- app_data:/usr/share/nginx/html
networks:
- backend
db:
image: postgres
environment:
POSTGRES_PASSWORD: example
volumes:
- db_data:/var/lib/postgresql/data
networks:
- backend
volumes:
app_data:
db_data:
networks:
backend:
Fazit
In diesem Leitfaden haben Sie gelernt:
- Docker-Netzwerke zu konfigurieren
- Volumes zu erstellen und zu mounten
- Daten dauerhaft zu speichern
- Backups zu automatisieren
Mit diesem Wissen können Sie Container-Umgebungen sicher und effizient betreiben.