Site icon bintorosoft.com

LEMP mit Docker Compose: Nginx, PHP-FPM und MariaDB

Penguin with glasses and a surprised look on his face is looking at a laptop on white background.

Ein LEMP-Stack (Linux, Nginx, PHP-FPM, MariaDB) ist eine beliebte Kombination für performante Webanwendungen. Docker Compose ermöglicht die einfache Orchestrierung aller Komponenten in Containern, inklusive Netzwerke, Volumes und Konfigurationen. In diesem Tutorial lernen Sie, wie ein vollständiger LEMP-Stack mit Docker Compose aufgesetzt wird, inklusive Persistenz, Sicherheitsaspekten und Best Practices.

Grundstruktur eines LEMP-Stacks

Ein moderner LEMP-Stack besteht aus drei Hauptservices:

Weitere Komponenten

Volumes für Persistenz

Um Datenverlust bei Container-Neustarts zu vermeiden, sollten Datenbanken und Upload-Verzeichnisse persistent gespeichert werden.

volumes:
  db_data:
  app_data:

Netzwerke für interne Kommunikation

Separate Netzwerke sorgen für eine klare Trennung zwischen Frontend und Backend, erhöhen die Sicherheit und ermöglichen einfache Service-Kommunikation.

networks:
  frontend_net:
  backend_net:

Beispiel: docker-compose.yml für LEMP

version: '3.8'

services:
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx/conf:/etc/nginx/conf.d
- app_data:/var/www/html
networks:
- frontend_net
depends_on:
- php

php:
image: php:8.2-fpm
volumes:
- app_data:/var/www/html
networks:
- frontend_net
- backend_net
depends_on:
- db

db:
image: mariadb:11
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
MYSQL_DATABASE=lempdb
volumes:
- db_data:/var/lib/mysql
networks:
- backend_net
secrets:
- db_root_password

secrets:
db_root_password:
file: ./db_root_password.txt

volumes:
db_data:
app_data:

networks:
frontend_net:
backend_net:

Erklärungen zur Compose-Datei

Start und Verwaltung des LEMP-Stacks

Der gesamte Stack wird mit einem Befehl gestartet:

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 php
docker-compose logs -f db

Rollback auf vorherige App-Version

docker service update --image my_app:1.0 my_php_service

Zusammenfassung

Ein LEMP-Stack mit Nginx, PHP-FPM und MariaDB lässt sich effizient mit Docker Compose orchestrieren. Durch den Einsatz von Volumes für Persistenz, Secrets für sensible Daten und separaten Netzwerken wird der Stack sicher, wartbar und reproduzierbar. Best Practices wie Startabhängigkeiten, CI/CD-Integration und regelmäßige Updates sorgen dafür, dass Webanwendungen zuverlässig in Entwicklung, Test und Produktion betrieben werden können.

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