此Docker镜像提供基于bitnami/keycloak或Quay.io***Keycloak镜像的通用Keycloak设置。还包含:
本仓库提供三种主要镜像变体:
⚠️ 关于Bitnami镜像的重要说明 由于Bitnami目录变更,自2025年8月28日起,新的Bitnami容器镜像不再发布到Docker Hub。本仓库现在使用
docker.io/bitnamilegacy仓库的镜像以继续提供支持。
用户应考虑迁移到Quay-based镜像,这些镜像得到积极维护,推荐用于生产环境。
docker.io/camunda/keycloak:quay-* 和 latest)[推荐]基于Quay.ioKeycloak镜像,遵循Keycloak配置模式,适合偏好上游容器约定的用户。这些镜像标签使用quay-前缀,latest标签指向最新的Quay-based版本,可在Docker Hub公开获取。
✅ 推荐:这些镜像积极维护,推荐用于生产环境。
docker.io/camunda/keycloak:quay-optimized-*)Quay-based镜像的预构建配置变体,具有优化的启动时间和Camunda兼容设置:
/auth基础路径,实现与Camunda无缝集成docker.io/camunda/keycloak:bitnami-*)基于Bitnami Legacy Keycloak镜像,使用Bitnami的环境变量约定,适合熟悉Bitnami生态系统的用户。标签使用bitnami-前缀,可在Docker Hub公开获取。为保持向后兼容,这些镜像也提供不带前缀的版本。
注意:这些镜像基于bitnamilegacy仓库,Bitnami不再提供更新。建议生产环境迁移到Quay-based镜像。
registry.camunda.cloud/keycloak-ee/keycloak:bitnami-ee-*)基于Bitnami企业版的高级企业级镜像,标签使用bitnami-ee-前缀,仅对授权客户开放,可从Camunda企业 registry获取。为保持向后兼容,这些镜像在专用registry中也提供不带前缀的版本。
所有变体均包含相同的AWS JDBC包装器和Camunda Identity主题功能。
📘 所有Keycloak相关问题,请参考Keycloak文档:[]
🐳🚀 要在容器环境中运行Keycloak,请遵循以下步骤:
确保您的机器已安装Docker。
启动Bitnami-based镜像:
bashdocker run --name mykeycloak -p 8443:8443 \ -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=change_me \ docker.io/camunda/keycloak:bitnami-26
启动Quay-based镜像:
bashdocker run --name mykeycloak -p 8443:8443 \ -e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=change_me \ docker.io/camunda/keycloak:quay-26 \ start --hostname=localhost
Keycloak将以生产模式启动,使用安全HTTPS通信,可通过https://localhost:8443访问。
生产环境强烈推荐使用Quay-based镜像(camunda/keycloak:quay-*),因为:
Bitnami-based镜像仅建议用于:
浏览Docker Hub上Camunda Keycloak Docker镜像的可用标签:
quay-前缀Bitnami-based镜像:
:<基础镜像版本>-<yyyy-mm-dd>-<迭代>:例如 24-2024-03-04-004 🏷️:<基础镜像版本>:例如 24.0.1-0:<Keycloak主版本>:例如 24Quay-based镜像(带quay-前缀):
:quay-<基础镜像版本>-<yyyy-mm-dd>-<迭代>:例如 quay-24-2024-03-04-004 🏷️:quay-<基础镜像版本>:例如 quay-24.0.1:quay-<Keycloak主版本>:例如 quay-24:quay-optimized-<基础镜像版本>-<yyyy-mm-dd>-<迭代>:例如 quay-optimized-24-2024-03-04-004 🏷️:quay-optimized-<基础镜像版本>:例如 quay-optimized-24.0.1:quay-optimized-<Keycloak主版本>:例如 quay-optimized-24:quay-optimized-latest:最新优化Quay-based镜像:latest:对应最新稳定标准(非优化)Quay-based镜像Bitnami Keycloak容器镜像配置详见hub.docker.com/bitnami/keycloak。
从Keycloak 26.3.2开始,以下遗留环境变量已弃用,改用原生KC_*变量:
| 遗留变量(26.3.2前) | 原生变量(26.3.3+) |
|---|---|
KEYCLOAK_ADMIN_USER | KC_BOOTSTRAP_ADMIN_USERNAME |
KEYCLOAK_BOOTSTRAP_ADMIN_PASSWORD | KC_BOOTSTRAP_ADMIN_PASSWORD |
KEYCLOAK_CACHE_TYPE | KC_CACHE |
KEYCLOAK_ENABLE_STATISTICS | KC_METRICS_ENABLED |
KEYCLOAK_ENABLE_HEALTH_ENDPOINTS | KC_HEALTH_ENABLED |
KEYCLOAK_HOSTNAME | KC_HOSTNAME |
KEYCLOAK_HOSTNAME_STRICT | KC_HOSTNAME_STRICT |
KEYCLOAK_LOG_LEVEL | KC_LOG_LEVEL |
KEYCLOAK_PROXY_HEADERS | KC_PROXY_HEADERS |
更多环境变量信息详见Bitnami Keycloak镜像。
***Keycloak容器配置文档:keycloak.org/server/containers。
Quay-based镜像提供两种子类型:
标准镜像(quay-<version>)
优化镜像(quay-optimized-<version>)
/auth基础路径jdbc:aws-wrapper:postgresql://... URLCamunda路径配置(--http-relative-path=/auth)
/auth路径预配置用于与Camunda Platform 8无缝集成,Camunda期望Keycloak在此基础路径上可用。此配置:
/auth前缀(例如 /auth/realms/master)XA事务禁用(--transaction-xa-enabled=false)
优化镜像中禁用XA事务的原因:
构建参数和配置差异的技术细节详见DEVELOPER.md。
从Keycloak 21及更高版本开始,可使用镜像中包含的AWS Advanced JDBC包装器启用IRSA(服务账户IAM角色)。详见Keycloak文档。
Kubernetes中使用IRSA,配置以下环境变量:
yaml- name: KEYCLOAK_EXTRA_ARGS value: "--db-driver=software.amazon.jdbc.Driver --transaction-xa-enabled=false --log-level=INFO,software.amazon.jdbc:INFO" - name: KEYCLOAK_JDBC_PARAMS value: "wrapperPlugins=iam" - name: KEYCLOAK_JDBC_DRIVER value: "aws-wrapper:postgresql" - name: KEYCLOAK_DATABASE_USER value: db-user-name - name: KEYCLOAK_DATABASE_NAME value: db-name - name: KEYCLOAK_DATABASE_HOST value: db-host - name: KEYCLOAK_DATABASE_PORT value: 5432 - name: KEYCLOAK_ENABLE_STATISTICS value: "true" - name: KEYCLOAK_ENABLE_HEALTH_ENDPOINTS value: "true"
Kubernetes中使用IRSA,配置以下环境变量:
标准镜像(quay-<version>)
yaml- name: KC_DB value: postgres - name: KC_DB_DRIVER value: software.amazon.jdbc.Driver - name: KC_DB_URL value: "jdbc:aws-wrapper:postgresql://db-host:5432/db-name?wrapperPlugins=iam" - name: KC_DB_USERNAME value: db-user-name - name: KC_TRANSACTION_XA_ENABLED value: "false" - name: KC_HEALTH_ENABLED value: "true" - name: KC_METRICS_ENABLED value: "true"
优化镜像(quay-optimized-<version>)
优化镜像预配置AWS JDBC包装器驱动,必须使用aws-wrapper URL格式,即使非IRSA部署:
yaml# IRSA(IAM认证) - name: KC_DB_URL value: "jdbc:aws-wrapper:postgresql://db-host:5432/db-name?wrapperPlugins=iam" - name: KC_DB_USERNAME value: db-user-name # IRSA无需KC_DB_PASSWORD # 传统用户名/密码认证 - name: KC_DB_URL value: "jdbc:aws-wrapper:postgresql://db-host:5432/db-name" - name: KC_DB_USERNAME value: db-user-name - name: KC_DB_PASSWORD value: db-password # 注意:数据库驱动、健康/指标和XA设置已预配置
不要忘记将部署/statefulset的serviceAccountName设置为带有IRSA注解的服务账户。
要在Helm Chart中使用此镜像,可使用bitnami/keycloak并更新镜像及添加必要环境变量:
⚠️ 迁移建议:新部署建议使用Keycloak Operator配合Quay-based镜像,提供更好的长期支持并遵循Keycloak最佳实践。
现有Bitnami部署可使用bitnami/keycloak Helm Chart:
yamlimage: docker.io/camunda/keycloak:bitnami-26 extraEnvVars: - name: KEYCLOAK_EXTRA_ARGS value: "--db-driver=software.amazon.jdbc.Driver --transaction-xa-enabled=false --log-level=INFO,software.amazon.jdbc:INFO" - name: KEYCLOAK_JDBC_PARAMS value: "wrapperPlugins=iam" - name: KEYCLOAK_JDBC_DRIVER value: "aws-wrapper:postgresql" externalDatabase: host: "aurora.rds.your.domain" port: 5432 user: keycloak database: keycloak global: security: # 以下参数因[***] # 不会降低安全性,仅允许Bitnami镜像的分支(如本镜像)被Chart部署 allowInsecureImages: true
生产环境Quay-based镜像推荐使用***Keycloak Operator,提供更好的生命周期管理并遵循Keycloak最佳实践:
📋 Keycloak Operator安装:[***]
Operator允许声明式部署Keycloak实例并提供适当的配置管理。以下是使用Camunda镜像的Keycloak自定义资源示例:
yamlapiVersion: k8s.keycloak.org/v2alpha1 kind: Keycloak metadata: name: keycloak namespace: keycloak spec: image: docker.io/camunda/keycloak:quay-optimized-26 instances: 3 db: vendor: postgres host: aurora.rds.your.domain port: 5432 database: keycloak usernameSecret: name: keycloak-db-secret key: username # IRSA场景,省略passwordSecret以使用IAM认证 # IRSA支持仅适用于优化镜像 unsupported: podTemplate: spec: serviceAccountName: keycloak-service-account containers: - name: keycloak env: - name: KC_DB_URL value: "jdbc:aws-wrapper:postgresql://aurora.rds.your.domain:5432/keycloak?wrapperPlugins=iam"
⚠️ Keycloak Operator重要说明
使用标准镜像(
quay-<version>或latest)配合Key
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名