docker-compose.yml
services:
idprovider-app:
container_name: idprovider-app
build:
dockerfile: Dockerfile
context: .
environment:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
volumes:
- keycloak-data-volume:/var/lib/keycloak/data
ports:
- "8090:8090"
- "8443:8443"
volumes:
keycloak-data-volume:
external: true
固定文件
FROM jboss/keycloak:7.0.1
EXPOSE 8080
EXPOSE 8443
** Docker 检查“集装箱”**
"Mounts": [
{
"Type": "volume",
"Name": "keycloak-data-volume",
"Source": "/mnt/sda1/var/lib/docker/volumes/keycloak-data-volume/_data",
"Destination": "/var/lib/keycloak/data",
"Driver": "local",
"Mode": "rw",
"RW": true,
"Propagation": ""
}
],
Docker卷检查密钥隐藏数据卷
[
{
"CreatedAt": "2019-12-10T19:31:55Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/mnt/sda1/var/lib/docker/volumes/keycloak-data-volume/_data",
"Name": "keycloak-data-volume",
"Options": {},
"Scope": "local"
}
]
没有错误,但它不保存状态。我不知道出了什么问题。我在Windows 10上运行它。
5条答案
按热度按时间xzlaal3s1#
使用默认的数据库位置,您可以尝试此选项与docker-compose:
在普通Docker https://stackoverflow.com/a/60554189/6916890中找到类似答案
docker run --volume /root/keycloak/data/:/opt/jboss/keycloak/standalone/data/
gtlvzcf82#
如果你使用的是https://www.keycloak.org/getting-started/getting-started-docker中提到的docker设置,并且正在寻找一种即使容器被删除也能持久保存数据的方法,那么你可以使用docker卷,并将
/opt/keycloak/data/
文件夹从docker容器挂载到本地机器的一个目录中。在入门文档中提到的docker命令中,您需要做的唯一更改是使用添加卷装载docker选项
-v /<path-in-your-local-machine>/keycloak-data/:/opt/keycloak/data/
因此,以本地目录为例的最终docker run命令如下所示:
qcuzuvrc3#
您使用的是哪个数据库?我认为您需要将数据库卷也与它绑定以保存状态。
例如:对于postgress
或用于MySQL
vqlkdk9b4#
您必须在环境变量中指定数据库的源。如果您为postgres的PostgreSQL示例使用了其他服务,则必须在服务中指定DB_ADDR环境变量。
laximzn55#
我的两分钱,为我工作的持久卷指向/opt/keycloak/data/h2,与Keycloak docker版本19. 0. 1: