Docker Erweiterte Bereitstellung
Docker Netzwerk Grundlagen
Docker bietet ausgereifte Netzwerkfunktionen, um Container zu verbinden und die Kommunikation zwischen ihnen zu verwalten.
graph TD
A[Docker Host] --> B[Bridge Netzwerk]
B --> C[Container 1]
B --> D[Container 2]
B --> E[Container 3]
Netzwerktypen
Netzwerktyp |
Beschreibung |
Anwendungsfall |
Bridge |
Standardnetzwerk |
Isolierte Containerkommunikation |
Host |
Direktes Host-Netzwerk |
Hochleistungs-Szenarien |
Overlay |
Multi-Host-Netzwerk |
Verteilte Systeme |
Macvlan |
Integration in physisches Netzwerk |
Container-Exposition auf Netzwerkebene |
Container Orchestrierung mit Docker Compose
Docker Compose Konfiguration
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
networks:
- app_network
database:
image: postgres:13
environment:
POSTGRES_PASSWORD: secretpassword
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- app_network
networks:
app_network:
driver: bridge
volumes:
postgres_data:
Bereitstellungsbefehle
## Dienste erstellen und starten
docker-compose up -d
## Laufende Dienste anzeigen
docker-compose ps
## Container stoppen und entfernen
docker-compose down
Skalierungsstrategien für Container
## Skalierung eines bestimmten Dienstes
docker-compose up -d --scale web=3
Best Practices für die Containersicherheit
Sicherheits-Scanning
## Docker-Image auf Sicherheitslücken prüfen
docker scan myimage:latest
## Verwendung von offiziellen, sicherheitsorientierten Basis-Images
FROM alpine:latest
Sicherheitskonfiguration zur Laufzeit
## Container mit eingeschränkten Rechten ausführen
docker run --read-only \
--tmpfs /tmp \
--security-opt=no-new-privileges:true \
myapp:latest
Erweiterte Netzwerktechniken
Erstellung benutzerdefinierter Netzwerke
## Isoliertes Netzwerk erstellen
docker network create \
--driver bridge \
--subnet 192.168.0.0/24 \
--gateway 192.168.0.1 \
custom_network
## Container mit benutzerdefiniertem Netzwerk verbinden
docker run --network=custom_network myapp:latest
Bereitstellung auf mehreren Hosts
graph TD
A[Docker Swarm Manager] --> B[Worker Node 1]
A --> C[Worker Node 2]
A --> D[Worker Node 3]
Swarm Initialisierung
## Docker Swarm initialisieren
docker swarm init
## Dienst über den Cluster bereitstellen
docker service create \
--replicas 3 \
--network swarm_network \
myapp:latest