Site icon bintorosoft.com

Docker Compose für Web Apps: Nginx + App + DB als Stack

Desktop PC monitor photo JavaScript functions variables objects Project

Docker Compose ist ein leistungsfähiges Werkzeug, um Multi-Container-Anwendungen wie Web Apps schnell und reproduzierbar zu starten. Typischerweise besteht ein Web App Stack aus einem Frontend-Webserver wie Nginx, einer Anwendung (z. B. Node.js, Python oder PHP) und einer Datenbank. Mit Docker Compose lassen sich diese Dienste, Netzwerke und Volumes in einer Datei definieren, sodass der gesamte Stack mit einem Befehl gestartet werden kann.

Grundstruktur eines Web App Stacks

Ein typischer Web App Stack besteht aus drei Komponenten:

Docker Compose Grundlagen

Docker Compose-Dateien verwenden das YAML-Format, um Services, Netzwerke und Volumes zu definieren. Version 3.8 oder höher wird empfohlen für moderne Features wie Secrets und Profiles.

Volumes für Persistenz

Datenbanken benötigen persistente Speicher, um Daten bei Neustarts zu erhalten. Docker Compose Volumes sind dafür ideal.

volumes:
  db_data:
  app_data:

Netzwerke für die interne Kommunikation

Services kommunizieren über interne Docker-Netzwerke. Nginx sollte nur das App-Service erreichen, App darf auf DB zugreifen, DB bleibt intern.

networks:
  frontend_net:
  backend_net:

Beispiel: docker-compose.yml für Web App Stack

version: '3.8'

services:
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx/conf:/etc/nginx/conf.d
- app_data:/usr/share/nginx/html
networks:
- frontend_net
depends_on:
- app

app:
image: my_app:latest
environment:
- DATABASE_HOST=db
- DATABASE_USER=root
- DATABASE_PASSWORD_FILE=/run/secrets/db_password
volumes:
- app_data:/usr/src/app/data
networks:
- frontend_net
- backend_net
secrets:
- db_password

db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_password
MYSQL_DATABASE=myapp
volumes:
- db_data:/var/lib/mysql
networks:
- backend_net
secrets:
- db_password

secrets:
db_password:
file: ./db_password.txt

volumes:
db_data:
app_data:

networks:
frontend_net:
backend_net:

Erklärungen zur Compose-Datei

Start und Verwaltung

Der gesamte Stack kann mit einem Befehl gestartet werden:

docker-compose up -d

Zum Stoppen und Entfernen aller Container, Netzwerke und Volumes:

docker-compose down -v

Best Practices

Praxisbeispiele

Starten des Stacks

docker-compose up -d

Logs überwachen

docker-compose logs -f nginx
docker-compose logs -f app
docker-compose logs -f db

Rollback auf vorherige App-Version

docker service update --image my_app:1.0 my_app_service

Zusammenfassung

Mit Docker Compose lassen sich komplexe Web App Stacks aus Nginx, Anwendung und Datenbank einfach orchestrieren. Durch den Einsatz von Volumes für Persistenz, Secrets für sensible Daten und separaten Netzwerken für interne Kommunikation wird der Stack sicher, wartbar und reproduzierbar. Best Practices wie Startabhängigkeiten, CI/CD-Integration und regelmäßige Updates sorgen dafür, dass der Web App Stack zuverlässig in Entwicklung, Test und Produktion betrieben werden kann.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version