Bereitstellung und Verwaltung von Docker-Anwendungen
Sobald Sie Ihr benutzerdefiniertes Docker-Image erstellt haben, können Sie Ihre Docker-basierten Anwendungen bereitstellen und verwalten. Dieser Abschnitt behandelt die wichtigsten Konzepte und Schritte bei der Bereitstellung und Verwaltung von Docker-Anwendungen.
Bereitstellung von Docker-Containern
Um einen Docker-Container bereitzustellen, können Sie den Befehl docker run
verwenden. Dieser Befehl startet einen neuen Container basierend auf einem angegebenen Image und ermöglicht Ihnen die Konfiguration verschiedener Optionen wie Portweiterleitungen, Umgebungsvariablen und Volume-Mounts.
Hier ist ein Beispiel für die Ausführung eines Containers basierend auf dem Image "my-custom-image":
docker run -d -p 8080:8080 -e DB_HOST=192.168.1.100 -v /data:/app/data my-custom-image
Dieser Befehl:
- Führt den Container im detachierten Modus (
-d
) aus.
- Leitet den Container-Port 8080 auf den Host-Port 8080 weiter (
-p 8080:8080
).
- Legt eine Umgebungsvariable
DB_HOST
mit dem Wert 192.168.1.100
fest (-e DB_HOST=192.168.1.100
).
- Mount das Host-Verzeichnis
/data
auf das Container-Verzeichnis /app/data
(-v /data:/app/data
).
- Verwendet das Image "my-custom-image", um den Container zu starten.
Verwaltung von Docker-Containern
Docker bietet verschiedene Befehle zur Verwaltung laufender Container:
docker ps
: Listet alle laufenden Container auf.
docker stop <container_id>
: Stoppt einen laufenden Container.
docker start <container_id>
: Startet einen gestoppten Container.
docker logs <container_id>
: Zeigt die Logs eines Containers an.
docker exec -it <container_id> /bin/bash
: Greift auf die Shell eines laufenden Containers zu.
Docker Compose
Docker Compose ist ein Werkzeug, mit dem Sie multi-container Docker-Anwendungen definieren und verwalten können. Es verwendet eine YAML-Datei, um die Services, Netzwerke und Volumes für Ihre Anwendung zu konfigurieren.
Hier ist ein Beispiel für eine docker-compose.yml
-Datei:
version: "3"
services:
web:
build: .
ports:
- "8080:8080"
environment:
- DB_HOST=database
depends_on:
- database
database:
image: mysql:5.7
environment:
- MYSQL_DATABASE=myapp
- MYSQL_ROOT_PASSWORD=secret
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
Diese Compose-Datei definiert zwei Services: einen Web-Service und einen Datenbank-Service. Der Web-Service wird aus dem aktuellen Verzeichnis erstellt, während der Datenbank-Service das offizielle MySQL 5.7-Image verwendet. Die Services sind über ein Netzwerk verbunden, und die Daten des Datenbank-Services werden in einem benannten Volume persistent gespeichert.
Um diese Anwendung bereitzustellen, können Sie docker-compose up -d
im selben Verzeichnis wie die docker-compose.yml
-Datei ausführen.
Skalierung von Docker-Anwendungen
Docker erleichtert die Skalierung Ihrer Anwendungen durch Hinzufügen oder Entfernen von Containern. Sie können Docker Compose verwenden, um Ihre Services zu skalieren:
docker-compose up -d --scale web=3
Dieser Befehl startet drei Instanzen des "web"-Services.
Überwachung und Logging
Docker bietet integrierte Tools zur Überwachung und Protokollierung Ihrer Container. Sie können den Befehl docker stats
verwenden, um die Echtzeit-Ressourcenverwendung anzuzeigen, und den Befehl docker logs
, um auf die Logs eines Containers zuzugreifen.
Zusätzlich können Sie Ihre Docker-Anwendungen mit externen Überwachungs- und Logging-Tools wie Prometheus, Grafana und Elasticsearch integrieren, um erweiterte Einblicke und Funktionen zu erhalten.