---
title: Datenbanken
url: 'https://niklas-stephan.de/de/wiki/free-open-source-software/datenbanken'
markdown: 'https://niklas-stephan.de/de/wiki/free-open-source-software/datenbanken.md'
lang: de
date: '2026-11-14'
description: 'Datenbanken Der Betrieb von Datenbanksystemen ist heute so einfach wie noch nie zuvor – Betriebssystemcontainern wie Docker zum Dank. Während ich beruflich noch gelernt habe, eine Oracle-Datenbank in mühevollster Kleinstarbeit über Tage hin perfekt zu konfigurieren, fährt man heute nur noch den Con…'
---

# Datenbanken

Der Betrieb von Datenbanksystemen ist heute so einfach wie noch nie zuvor – Betriebssystemcontainern wie Docker zum Dank.

Während ich beruflich noch gelernt habe, eine Oracle-Datenbank in mühevollster Kleinstarbeit über Tage hin perfekt zu konfigurieren, fährt man heute nur noch den Container mit ein paar Standard-Konfigurationsoptionen hoch.

## Relationale Datenbanken

Die „Klassiker“ der Datenbanken.

Für den Betrieb brauchen wir neben dem Container als solches ein Volume für den persistenten Speicher, Umgebungsvariablen und ein paar Konfigurationsoptionen.

Obacht bei der Auswahl des Users, unter dem der Datenbankcontainer laufen sollte, da sich die Berechtigungen auf das persistente Volume durchziehen.

### MariaDB

MariaDB ist ein Open-Source-Projekt, das als Fork von MySQL entstanden ist und ebendieses weitestgehend verdrängt hat.

#### Konfiguration

Beispiel hier.

compose.yml:

```yaml
mariadb:
  container_name: mariadb
  image: mariadb:10.11
  user: "1000:1000"
  restart: unless-stopped
  command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW --log_bin_trust_function_creators=true
  volumes:
    - ./db:/var/lib/mysql
  env_file: .env
  networks:
    - default
```

.env:

```ini
MARIADB_ROOT_PASSWORD=
MARIADB_DATABASE=
MARIADB_USER=
MARIADB_PASSWORD=
TZ=Europe/Berlin
PUID=1000
PGID=1000
```

#### Betrieb

Datenbank sichern (Backup oder Dump):

```bash
docker exec DBCONTAINERNAME sh -c 'exec mysqldump -u"root" -p"ROOTPASSWORD" "DBNAME"' > dump.sql
```

Datenbank aus Dump wiederherstellen (Restore):

```bash
cat dump.sql | docker exec -i DBCONTAINERNAME sh -c 'exec mysql -u"root" -p"ROOTPASSWORD" "DBNAME"'
```

### PostgreSQL

PSQL ist die in der Open-Source-Gemeinde beliebteste relationale Datenbank und in modernen Software-Projekten in der Regel der Standard.

compose.yml:

```yaml
services:
  psqldb:
    container_name: psqldb
    image: postgres:15-alpine
    user: "1000:1000"
    environment:
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    restart: unless-stopped
    volumes:
      - ./db:/var/lib/postgresql/data
    networks:
      - default
```

.env:

```bash
POSTGRES_DB=
POSTGRES_PASSWORD=
POSTGRES_USER=
PUID=1000
PGID=1000
TZ=Europe/Berlin
```

---

## Navigation

- Parent: [Freie Open-Source-Software](https://niklas-stephan.de/de/wiki/free-open-source-software.md)
- Next: [💾 Dosbox-X](https://niklas-stephan.de/de/wiki/free-open-source-software/dosbox-x.md)
