Docker Compose ist ein leistungsstarkes und beliebtes Tool zur Verwaltung und Bereitstellung von Anwendungen auf Basis von Docker. Es ermöglicht Ihnen, mehrere Container als ein einziges Projekt zu definieren, zu konfigurieren und auszuführen, was Docker die Anwendungsbereitstellung vereinfacht und die Konsistenz zwischen Entwicklungs- und Produktionsumgebungen gewährleistet.
Nachfolgend finden Sie einige Konzepte und Beispiele für Docker Compose:
Definieren Sie das Projekt mithilfe der Datei docker-compose.yml
In der docker-compose.yml
Datei können Sie die für Ihre Anwendung benötigten Dienste definieren. Um beispielsweise eine PHP-Webanwendung mit einer MySQL-Datenbank bereitzustellen, können Sie zwei Dienste wie folgt definieren:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "80:80"
volumes:
- ./app:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: my_database
Im obigen Codeausschnitt definieren wir zwei Dienste: web
und db
. Der web
Dienst verwendet PHP 7.4 image mit Apache, überwacht Port 80 und mountet das ./app
Verzeichnis vom Host in das /var/www/html
Verzeichnis im container. Der db
Dienst verwendet MySQL 5.7 image und legt einige für die Datenbank erforderliche Umgebungsvariablen fest.
Docker Compose Befehl verwenden
Nachdem Sie das Projekt in der Datei definiert haben docker-compose.yml
, können Sie Docker Compose die Dienste mithilfe von Befehlen verwalten.
-
Starten Sie das Projekt:
docker-compose up
Dieser Befehl startet die Container für die in der
docker-compose.yml
Datei definierten Dienste. -
Anhalten und Behälter entfernen:
docker-compose down
Dieser Befehl stoppt und entfernt alle mit dem Projekt verbundenen Container.
-
Laufende Container auflisten:
docker-compose ps
Dieser Befehl zeigt den Status der Container im Projekt an.
-
Serviceprotokolle anzeigen:
docker-compose logs
Dieser Befehl zeigt die Protokolle der Dienste im Projekt an.
Umgebungsvariablen und Anpassung
Docker Compose ermöglicht Ihnen die Verwendung von Umgebungsvariablen zum Anpassen von Konfigurationen für verschiedene Umgebungen, z. B. Entwicklung und Produktion. Sie können Umgebungsvariablen in der docker-compose.yml
Datei verwenden und ihre Werte in entsprechenden .env
Dateien definieren.
Wenn Sie beispielsweise eine Umgebungsvariable für den Port des web
Dienstes definieren möchten, können Sie der .env
Datei eine Zeile wie diese hinzufügen:
WEB_PORT=8080
Dann docker-compose.yml
können Sie in der Datei diese Umgebungsvariable wie folgt verwenden:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Beim Ausführen des docker-compose up
Befehls web
überwacht der Dienst Port 8080 statt Port 80.
Integration mit Docker Swam
Wenn Sie Ihre Anwendung in einer verteilten Umgebung mit mehreren Knoten bereitstellen möchten, Docker Compose können Sie sie integrieren Docker Swarm. Dadurch können Sie Dienste über mehrere Knoten in einem Cluster hinweg verwalten Docker.
Um diese Integration zu nutzen, müssen Sie beim Ausführen von oder- Befehlen in einer Umgebung lediglich die Optionen --orchestrate
„oder“ hinzufügen. --with-registry-auth
docker stack deploy
docker-compose up
Swarm
Docker Compose ist ein nützliches Tool für die einfache und effiziente Anwendungsentwicklung, das Testen und die Bereitstellung. Es minimiert die Unterschiede zwischen Entwicklungs- und Produktionsumgebungen, sorgt für Konsistenz im Softwareentwicklungsprozess und steigert die Produktivität von Entwicklungsteams.