Praktische Beispiele für die Verwendung von Docker Compose
In diesem Abschnitt untersuchen wir einige praktische Beispiele dafür, wie Sie Docker Compose verwenden, um Ihre Anwendungen zu verwalten.
Beispiel 1: Bereitstellung einer Webanwendung und einer Datenbank
Nehmen wir an, wir haben eine Webanwendung, die eine MySQL-Datenbank benötigt. Wir können eine docker-compose.yml
-Datei erstellen, um diese Einrichtung zu definieren und zu verwalten:
version: "3"
services:
web:
image: myapp/web:latest
ports:
- "80:8080"
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
In diesem Beispiel haben wir zwei Services: web
und db
. Der web
-Service führt unsere Webanwendung aus, während der db
-Service eine MySQL-Datenbank ausführt. Das Feld depends_on
stellt sicher, dass der web
-Service nach dem db
-Service startet.
Um diese Anwendung bereitzustellen, können wir die folgenden Befehle ausführen:
docker-compose up -d
Dies startet die Anwendung im detachierten Modus, sodass Sie den Terminal weiterhin verwenden können.
Beispiel 2: Skalieren eines Services
Angenommen, wir möchten unsere Webanwendung skalieren, um mehr Traffic zu bewältigen. Wir können den Befehl docker-compose scale
verwenden, um dies zu tun:
docker-compose scale web=3
Dies skaliert den web
-Service auf 3 Replikate, wodurch wir die Last auf mehrere Container verteilen können.
Beispiel 3: Bereitstellung einer mehrschichtigen Anwendung
Docker Compose ist besonders nützlich für die Verwaltung mehrschichtiger Anwendungen, wie z. B. einer Webanwendung mit Frontend, Backend und Datenbank. Hier ist ein Beispiel:
version: "3"
services:
frontend:
image: myapp/frontend:latest
ports:
- "80:80"
depends_on:
- backend
backend:
image: myapp/backend:latest
environment:
DB_HOST: db
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
In diesem Beispiel haben wir drei Services: frontend
, backend
und db
. Der frontend
-Service ist abhängig vom backend
-Service, und der backend
-Service ist abhängig vom db
-Service. Dies stellt sicher, dass die Anwendung in der richtigen Reihenfolge bereitgestellt wird.
Mit Docker Compose können Sie die Bereitstellung und Skalierung Ihrer mehrschichtigen Anwendungen einfach verwalten und es ist ein leistungsstarkes Werkzeug für die containerbasierte Entwicklung und Bereitstellung.