Mario Hölscher/Keycloak mit Docker installieren: Die ultimative Schritt-für-Schritt Anleitung

Created Tue, 17 Feb 2026 00:00:00 +0000 Modified Sun, 12 Apr 2026 10:06:47 +0000

Keycloak installieren: Dein sicherer Hafen für Identity & Access Management

Du bist es leid, dich durch ein Labyrinth aus Passwörtern zu schlängeln? Dein System sieht aus, als hätte ein kleiner T-Rex dort ein Picknick veranstaltet? Dann ist Keycloak genau das Richtige für dich. Diese Open-Source-Lösung ist wie ein gut organisiertes Büro für deine Benutzerverwaltung (Identity and Access Management, IAM) – sicher, effizient und leicht zu handhaben. In diesem Guide zeigen wir dir, wie du Keycloak mit Docker einrichtest, damit du dich auf das Wesentliche konzentrieren kannst.

Vorbereitung ist alles: Was du brauchst

  • Ein Server oder lokaler Computer mit Internetzugang: Um die Docker-Images herunterzuladen.
  • Grundkenntnisse in Linux: Du solltest dich mit der Kommandozeile auskennen (z.B. Ubuntu/Debian).
  • Docker und Docker Compose: Diese beiden Werkzeuge sind das Herzstück unserer Installation.

Docker Compose installieren – Der Schlüssel zum Erfolg

Docker Compose ist wie ein Dirigent für deine Docker-Container. Es ermöglicht dir, mehrere Container (wie Keycloak und die MySQL-Datenbank) gleichzeitig zu verwalten. Ab Ubuntu 20.04 empfiehlt sich die Installation per Apt-Plugin:

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Repository hinzufügen
echo \
  "deb [arch=\"$(dpkg --print-architecture)\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Überprüfe die Installation:

docker compose version

Die Keycloak-Umgebung vorbereiten

Wir erstellen zuerst eine Ordnerstruktur für unsere Keycloak-Datenbanken. Das sorgt für persistente Daten, auch wenn die Container neu gestartet werden.

mkdir -p ~/keycloak-databases/data-sql
cd ~/keycloak-databases
touch data-sql/mysqld.conf docker-compose.yml .env
chmod 777 data-sql/

MySQL konfigurieren – Die solide Basis für Keycloak

MySQL ist die relationale Datenbank, in der Keycloak alle Benutzerdaten speichert. Wir erstellen eine Konfigurationsdatei für MySQL.

Erstelle die Datei data-sql/mysqld.conf mit folgendem Inhalt:

[mysqld]
bind-address = 0.0.0.0
port = 3306
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock

[mysqld_safe]
log-error=/var/log/mysql/error.log
pid-file=/var/run/mysqld/mysqld.pid

user=mysql

Dann die docker-compose.yml Datei:

version: '3.8'
services:
  mysqldb:
    image: mysql:8.0
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    env_file: .env
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} # Root-Passwort für MySQL
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER_KEYCLOAK}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD_KEYCLOAK} # Keycloak-Benutzerpasswort
    mem_limit: 500m
    ports:
      - "33066:3306"
    volumes:
      - data-sql:/var/lib/mysql

volumes:
  data-sql:

networks:
  default:

Und schließlich die .env Datei (passe die Werte an deine Sicherheitsanforderungen an):

MYSQL_ROOT_PASSWORD=EinSehrSicheresRootPasswort!
MYSQL_DATABASE=keycloak-db
MYSQL_USER_KEYCLOAK=keycloak-user
MYSQL_PASSWORD_KEYCLOAK=EinSehrSicheresKeycloakPasswort!

Keycloak Container starten – Das Herzstück der Benutzerverwaltung

Jetzt starten wir den Keycloak-Container. Wir nutzen das aktuelle, Quarkus-basierte Image von RedHat (Quay.io).

docker run -d --name keycloak \
  -p 8080:8080 \
  -e KC_DB=mysql \
  -e KC_DB_URL=jdbc:mysql://<deine-mysql-ip>:33066/keycloak-db \
  -e KC_DB_USERNAME=keycloak-user \
  -e KC_DB_PASSWORD=EinSehrSicheresKeycloakPasswort! \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=SicheresAdminPasswort! \
  quay.io/keycloak/keycloak:latest start-dev

(Hinweis: Ersetze <deine-mysql-ip> durch die tatsächliche IP des Docker-Hosts.)

Keycloak Testen und erste Schritte

Überprüfe, ob der Keycloak-Server läuft, indem du im Browser http://localhost:8080/ aufrufst und auf “Administration Console” klickst. Du solltest die Anmeldeseite sehen.

Melde dich mit den in den Umgebungsvariablen vergebenen Admin-Zugangsdaten an und erstelle deinen ersten Realm und Benutzer.

Wichtige Hinweise – Sicherheit geht vor!

  • Produktionsumgebung: Das start-dev Command ist nur für Testumgebungen gedacht! Für den produktiven Einsatz musst du TLS (HTTPS) aktivieren und das Kommando start verwenden.
  • Firewall: Stelle sicher, dass deine Firewall den Datenbank-Port (33066) von außen blockiert. Nur Keycloak sollte darauf zugreifen können.
  • Backups: Richte automatisierte Backups für das Verzeichnis /var/lib/mysql ein, um Datenverlust zu vermeiden.

Fazit

Mit Docker und Keycloak hast du ein mächtiges Werkzeug, um Single Sign-On (SSO) und deine Benutzerverwaltung sicher und effizient zu gestalten. Viel Erfolg bei der Integration in deine Anwendungen!