Site icon bintorosoft.com

Postgres in Docker: Tuning, Volumes und WAL Backups

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

PostgreSQL in Docker-Containern zu betreiben, ist eine gängige Praxis für Entwickler und DevOps-Teams. Dennoch erfordert der produktive Einsatz sorgfältige Planung: Von der Persistenz über Performance-Tuning bis hin zu WAL-Backups, um Datenverlust zu vermeiden. In diesem Tutorial erklären wir praxisnah, wie man PostgreSQL-Container richtig konfiguriert, optimiert und sichert.

PostgreSQL Container starten

Der erste Schritt ist ein stabiler Container-Start mit persistenter Datenhaltung:

docker run -d 
  --name pg-container 
  -e POSTGRES_USER=admin 
  -e POSTGRES_PASSWORD=secret 
  -e POSTGRES_DB=mydb 
  -v pgdata:/var/lib/postgresql/data 
  -p 5432:5432 
  postgres:15

Persistenz mit Volumes

Ohne Volumes gehen Daten beim Neustart verloren. Docker-Volumes bieten einfache und zuverlässige Persistenz.

docker volume create pgdata
docker inspect pgdata

PostgreSQL Tuning

Für Performance in Containern sollten einige Parameter angepasst werden:

Memory und Shared Buffers

PostgreSQL nutzt RAM für Caching, um I/O-Operationen zu reduzieren:

docker run -d 
  --name pg-container 
  -e POSTGRES_PASSWORD=secret 
  -v pgdata:/var/lib/postgresql/data 
  -p 5432:5432 
  postgres:15 
  -c shared_buffers=512MB 
  -c work_mem=64MB

Connection Limits

Standardmäßig erlaubt PostgreSQL viele Verbindungen, was zu Ressourcenengpässen führen kann:

docker exec -it pg-container 
  psql -U admin -d mydb -c "SHOW max_connections;"
docker exec -it pg-container 
  psql -U admin -d mydb -c "ALTER SYSTEM SET max_connections = 100;"

WAL Backups (Write-Ahead Logging)

WAL-Backups ermöglichen Point-in-Time-Recovery (PITR) und verhindern Datenverlust:

WAL konfigurieren

Im postgresql.conf:

wal_level = replica
archive_mode = on
archive_command = 'cp %p /var/lib/postgresql/wal_archive/%f'

Backup durchführen

Mit pg_basebackup kann ein konsistentes Backup erstellt werden:

docker exec -it pg-container 
  pg_basebackup -U admin -D /var/lib/postgresql/backup -Fp -Xs -P

Monitoring und Healthchecks

Gesundheitschecks helfen, Container automatisch neu zu starten:

docker run -d 
  --name pg-container 
  --health-cmd="pg_isready -U admin" 
  --health-interval=30s 
  --health-retries=3 
  postgres:15

Best Practices für Produktions-Setups

Fazit

PostgreSQL in Docker ermöglicht flexible und standardisierte Deployments. Mit persistenten Volumes, gezieltem Tuning, WAL-Backups und Healthchecks lassen sich Container stabil betreiben und Datenverluste vermeiden. Insbesondere bei Produktionsdatenbanken sind Planung und Monitoring entscheidend.

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