我使用dockerdocker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:15.0.2的命令独立运行keycloak如何挂载一个卷来保存数据,容器停止后?
docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:15.0.2
0kjbasz61#
工作docker-compose.yml
docker-compose.yml
version: "3.7" volumes: keycloak: services: keycloak: image: quay.io/keycloak/keycloak:18.0.2 ports: - 8080:8080 environment: - KEYCLOAK_ADMIN=admin - KEYCLOAK_ADMIN_PASSWORD=admin volumes: - keycloak:/opt/keycloak/data/ restart: always command: - "start-dev"
sqserrrh2#
在生产环境中,Keycloak应该连接到real database (mariadb, mssql, mysql, oracle, postgres),数据存储在那里,因此不需要存储容器中运行的任何东西。
Keycloak自带一个基于Java的嵌入式关系数据库H2,数据存储在容器内的/opt/jboss/keycloak/standalone/data/中。要启动带有已装入卷的容器,您需要:
/opt/jboss/keycloak/standalone/data/
mkdir -m 777 ./keycloak_data
docker run -v ./keycloak_data:/opt/jboss/keycloak/standalone/data/ -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:15.0.2
请注意,如果装载卷,则只有在第一次启动容器时才会考虑KEYCLOAK_USER和KEYCLOAK_PASSWORD,因此要再次启动容器只需用途:
KEYCLOAK_USER
KEYCLOAK_PASSWORD
docker run -v ./keycloak_data:/opt/jboss/keycloak/standalone/data/ -p 8080:8080 quay.io/keycloak/keycloak:15.0.2
2条答案
按热度按时间0kjbasz61#
工作
docker-compose.yml
sqserrrh2#
对于生产:
在生产环境中,Keycloak应该连接到real database (mariadb, mssql, mysql, oracle, postgres),数据存储在那里,因此不需要存储容器中运行的任何东西。
对于开发:
Keycloak自带一个基于Java的嵌入式关系数据库H2,数据存储在容器内的
/opt/jboss/keycloak/standalone/data/
中。要启动带有已装入卷的容器,您需要:
1.创建具有读写权限的文件夹:
2.使用装载的卷启动容器:
请注意,如果装载卷,则只有在第一次启动容器时才会考虑
KEYCLOAK_USER
和KEYCLOAK_PASSWORD
,因此要再次启动容器只需用途: