如何在 keycloak docker 容器中进行数据库备份

kar*_*aka 5 java database django docker keycloak

我使用 docker 为我的django项目安装了 keycloak

docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak
Run Code Online (Sandbox Code Playgroud)

现在一切正常,但现在我想在 docker 中备份 keycloak db,但我不知道默认情况下在 keycloak docker 容器中安装了哪个数据库,那么如何备份和恢复数据,我正在使用$ sudo docker exec -it 35ba690a68fd /bin/bash此命令与容器交互,请提出任何建议。我使用的是红帽 Linux

rpt*_*t57 12

默认数据库位于/opt/jboss/keycloak/standalone/data/名称是keycloak.mv.db

如果你想备份它,我建议在运行 keycloak 时映射一个卷:

docker run --volume /root/keycloak/data/:/opt/jboss/keycloak/standalone/data/ ...
Run Code Online (Sandbox Code Playgroud)

这样,即使您销毁容器并重新创建它,数据库仍将保留在主机上并保留更改。


Fab*_* G. 1

默认情况下,Keycloak 使用其嵌入式 H2 数据库。我建议您迁移到外部数据库,以便能够更简单地管理备份。

有关支持的数据库以及如何使用,请参阅https://www.keycloak.org/docs/latest/server_installation/index.html#_databasehttps://github.com/keycloak/keycloak-containers/tree/master/server#database设置环境变量以从 Keycloak 容器连接到数据库。

问候,