Site icon bintorosoft.com

Docker für Datenbanken: PostgreSQL, MySQL und Backups richtig planen

A tiny penguin chick sits on a keyboard, exploring the computer. Its fluffy appearance and curious expression create a delightful scene.

Datenbanken in Docker-Containern zu betreiben, ist eine beliebte Methode, um Entwicklungs- und Produktionsumgebungen zu standardisieren. PostgreSQL und MySQL sind hierbei die am häufigsten eingesetzten Systeme. In diesem Tutorial erklären wir, wie man Datenbanken in Containern plant, persistent speichert und Backups zuverlässig durchführt, um Datenverlust zu vermeiden.

Containerisierte Datenbanken: Grundlagen

Datenbanken in Docker laufen wie jede andere Anwendung in isolierten Containern. Dabei gilt es zu beachten:

Persistenz durch Volumes

Um Daten dauerhaft zu speichern, sollten Volumes genutzt werden:

docker run -d 
  --name pgdb 
  -e POSTGRES_PASSWORD=secret 
  -v pgdata:/var/lib/postgresql/data 
  postgres:15

PostgreSQL in Docker

PostgreSQL ist eine leistungsstarke relationale Datenbank, die sich gut in Containerumgebungen betreiben lässt.

Start eines Containers

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

Backups erstellen

PostgreSQL kann via pg_dump gesichert werden:

docker exec mypostgres pg_dump -U admin mydb > backup.sql

MySQL in Docker

MySQL ist ein weiteres beliebtes relationales DBMS für Container-Setups.

Start eines MySQL-Containers

docker run -d 
  --name mysql-db 
  -e MYSQL_ROOT_PASSWORD=secret 
  -e MYSQL_DATABASE=mydb 
  -e MYSQL_USER=admin 
  -e MYSQL_PASSWORD=adminpass 
  -v mysqldata:/var/lib/mysql 
  -p 3306:3306 
  mysql:8.1

Backups erstellen

Mit mysqldump können Datenbanken exportiert werden:

docker exec mysql-db mysqldump -u admin -pmydb > backup.sql

Netzwerkkonfiguration für Datenbanken

Container-Datenbanken benötigen sichere Netzwerke:

networks:
  internal:
    driver: bridge

services:
  db:
    image: postgres:15
    networks:
      - internal
  app:
    image: myapp:latest
    networks:
      - internal

Ressourcenlimits

Besonders bei Produktionsdatenbanken wichtig, um Throttling und OOM-Kills zu vermeiden:

docker run -d 
  --name mypostgres 
  --memory="1g" 
  --cpus="1.0" 
  postgres:15

Backup-Strategien

Best Practices

Fazit

Docker erleichtert den Betrieb von PostgreSQL und MySQL erheblich, erfordert jedoch sorgfältige Planung in Bezug auf Persistenz, Ressourcen, Netzwerk und Backups. Mit konsequenter Nutzung von Volumes, Healthchecks, Ressourcenkontrolle und automatisierten Backups lässt sich ein stabiler und sicherer Datenbankbetrieb in Containern gewährleisten.

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