You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中运行Keycloak时如何持久化保存数据

Keycloak 15.x 版本Docker容器数据持久化方案

你正在使用的Keycloak 15.0.2版本默认使用内嵌H2数据库,所有配置、用户、域数据默认存储在容器内部的/opt/jboss/keycloak/standalone/data/路径下,只要将该路径挂载到宿主机存储,就能在容器销毁重启后保留所有数据,两种常用挂载方案如下:

方案1:使用Docker命名卷(更推荐,由Docker统一管理存储)

  • 先创建专属命名卷(也可跳过,启动命令执行时会自动创建):
docker volume create keycloak_data
  • 调整原启动命令,添加卷挂载参数即可:
docker run -p 8080:8080 \
  -e KEYCLOAK_USER=admin \
  -e KEYCLOAK_PASSWORD=admin \
  -v keycloak_data:/opt/jboss/keycloak/standalone/data \
  quay.io/keycloak/keycloak:15.0.2

方案2:绑定宿主机指定目录(适合需要直接访问数据文件的场景)

  • 先在宿主机创建存储目录并配置权限(容器内运行Keycloak的用户UID为1000,需要目录读写权限):
mkdir -p /opt/keycloak/data
chown 1000:1000 /opt/keycloak/data
  • 调整启动命令挂载自定义目录:
docker run -p 8080:8080 \
  -e KEYCLOAK_USER=admin \
  -e KEYCLOAK_PASSWORD=admin \
  -v /opt/keycloak/data:/opt/jboss/keycloak/standalone/data \
  quay.io/keycloak/keycloak:15.0.2

注意:生产环境不推荐使用内嵌H2数据库,建议外接MySQL、PostgreSQL等独立数据库,只需在启动时添加对应数据库的连接参数即可,数据直接存储在外部数据库中,无需挂载容器本地目录。

内容的提问来源于stack exchange,提问作者Dennis Meissel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:54:04