
dcm4che/keycloak-quarkus 是基于 eclipse-temurin:17(Java 17)构建的 Keycloak 镜像,采用 Keycloak 的 Quarkus 发行版。Keycloak 是一款开源的身份和访问管理(IAM)解决方案,提供集中式身份验证、授权、用户管理和单点登录(SSO)功能,适用于现代应用和服务的安全访问控制。
Keycloak 支持通过环境变量配置核心参数,常用变量如下表:
| 变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
| KEYCLOAK_ADMIN | 初始管理员用户名 | - | admin |
| KEYCLOAK_ADMIN_PASSWORD | 初始管理员密码 | - | secure_password |
| KC_DB | 数据库类型(支持 h2、postgres、mysql、mssql、oracle) | h2 | postgres |
| KC_DB_URL | 数据库连接 URL | 取决于 KC_DB | jdbc:postgresql://postgres:5432/keycloak |
| KC_DB_USERNAME | 数据库用户名 | - | keycloak_user |
| KC_DB_PASSWORD | 数据库密码 | - | keycloak_db_password |
| KC_HOSTNAME | 外部访问的主机名(生产模式必填) | - | auth.example.com |
| KC_HTTP_ENABLED | 是否启用 HTTP(生产环境建议禁用,仅用 HTTPS) | true | false |
| KC_HTTPS_PORT | HTTPS 端口 | 8443 | 443 |
| KC_HTTPS_CERTIFICATE_FILE | SSL 证书文件路径(容器内路径) | - | /etc/keycloak/certs/tls.crt |
| KC_HTTPS_CERTIFICATE_KEY_FILE | SSL 私钥文件路径(容器内路径) | - | /etc/keycloak/certs/tls.key |
| KC_LOG_LEVEL | 日志级别(ALL、DEBUG、INFO、WARN、ERROR、OFF) | INFO | DEBUG |
注:完整环境变量列表可通过
docker run --rm dcm4che/keycloak-quarkus:latest start --help查看。
4.2.1 开发模式(快速测试)
开发模式使用内置 H2 内存数据库(数据非持久化),自动创建管理员账户,适合快速测试:
bashdocker run -it --rm \ -p 8080:8080 \ -e KEYCLOAK_ADMIN=admin \ -e KEYCLOAK_ADMIN_PASSWORD=admin \ dcm4che/keycloak-quarkus:latest \ start-dev
访问 http://localhost:8080,使用 admin/admin 登录管理控制台。
4.2.2 生产模式(连接 PostgreSQL)
生产环境需配置外部数据库(如 PostgreSQL)和持久化存储,示例如下:
bashdocker run -d \ --name keycloak \ -p 8443:8443 \ -e KEYCLOAK_ADMIN=admin \ -e KEYCLOAK_ADMIN_PASSWORD=secure_password \ -e KC_DB=postgres \ -e KC_DB_URL=jdbc:postgresql://postgres-host:5432/keycloak \ -e KC_DB_USERNAME=keycloak_user \ -e KC_DB_PASSWORD=keycloak_db_password \ -e KC_HOSTNAME=auth.example.com \ -e KC_HTTPS_CERTIFICATE_FILE=/etc/keycloak/certs/tls.crt \ -e KC_HTTPS_CERTIFICATE_KEY_FILE=/etc/keycloak/certs/tls.key \ -v /path/to/certs:/etc/keycloak/certs \ dcm4che/keycloak-quarkus:latest \ start --optimized
以下为 Keycloak + PostgreSQL 的 Docker Compose 配置(docker-compose.yml):
yamlversion: '3.8' services: postgres: image: postgres:15 container_name: keycloak-db environment: POSTGRES_DB: keycloak POSTGRES_USER: keycloak_user POSTGRES_PASSWORD: keycloak_db_password volumes: - postgres-data:/var/lib/postgresql/data restart: unless-stopped keycloak: image: dcm4che/keycloak-quarkus:latest container_name: keycloak depends_on: - postgres ports: - "8443:8443" environment: KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: secure_password KC_DB: postgres KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak KC_DB_USERNAME: keycloak_user KC_DB_PASSWORD: keycloak_db_password KC_HOSTNAME: auth.example.com KC_HTTPS_CERTIFICATE_FILE: /etc/keycloak/certs/tls.crt KC_HTTPS_CERTIFICATE_KEY_FILE: /etc/keycloak/certs/tls.key volumes: - ./certs:/etc/keycloak/certs # 挂载 SSL 证书 restart: unless-stopped volumes: postgres-data:
启动服务:
bashdocker-compose up -d
Keycloak 数据(用户、领域、客户端等)需通过外部数据库持久化,默认 H2 数据库仅用于开发。支持的数据库及配置示例:
KC_DB=postgres,KC_DB_URL=jdbc:postgresql://host:5432/dbname。KC_DB=mysql,KC_DB_URL=jdbc:mysql://host:3306/dbname?useSSL=false。KC_DB=mssql,KC_DB_URL=jdbc:sqlserver://host:1433;databaseName=dbname。通过挂载卷将自定义主题目录挂载到容器内的 /opt/keycloak/themes:
bashdocker run -d \ ... \ -v /path/to/custom-themes:/opt/keycloak/themes \ dcm4che/keycloak-quarkus:latest \ start --optimized
将自定义提供商 JAR 文件挂载到 /opt/keycloak/providers:
bashdocker run -d \ ... \ -v /path/to/providers:/opt/keycloak/providers \ dcm4che/keycloak-quarkus:latest \ start --optimized
挂载自定义 keycloak.conf 配置文件(覆盖默认配置):
bashdocker run -d \ ... \ -v /path/to/keycloak.conf:/opt/keycloak/conf/keycloak.conf \ dcm4che/keycloak-quarkus:latest \ start --optimized
如需预配置主题、提供商或配置,可基于此镜像构建自定义镜像:
dockerfileFROM dcm4che/keycloak-quarkus:latest # 添加自定义主题 COPY ./custom-themes /opt/keycloak/themes/ # 添加提供商 JAR COPY ./providers/*.jar /opt/keycloak/providers/ # 添加自定义配置 COPY ./keycloak.conf /opt/keycloak/conf/ # 构建时执行配置(如安装提供商) RUN /opt/keycloak/bin/kc.sh build
bash# 构建镜像 docker build -t my-custom-keycloak . # 运行自定义镜像 docker run -d \ -p 8443:8443 \ -e KEYCLOAK_ADMIN=admin \ -e KEYCLOAK_ADMIN_PASSWORD=secure_password \ my-custom-keycloak \ start --optimized
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务