专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单

文档

工具

功能
提交工单页面收录

帮助
轩辕镜像免费版

其他
关于我们网站地图
热门搜索:
keycloak

kyberpunk/keycloak

kyberpunk

为ARM处理器(如树莓派4)预构建的Keycloak服务器Docker镜像,支持独立模式运行、管理员账户管理、领域导入导出及多种数据库集成,适用于ARM设备上的身份认证与授权服务。

下载次数: 0状态:社区镜像维护者:kyberpunk仓库类型:镜像最近更新:3 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

轩辕镜像,加速的不只是镜像。点击查看
中文简介
标签下载
镜像标签列表与下载命令
轩辕镜像,加速的不只是镜像。点击查看

ARM64架构的Keycloak Docker镜像

为ARM设备(如树莓派4)预构建的Keycloak服务器Docker镜像。描述内容基于官方Keycloak镜像:https://hub.docker.com/r/jboss/keycloak%E3%80%82

版本 >= 17.0.0 及 latest 标签请遵循新指南:[*] legacy 标签。**

使用方法

独立模式启动

bash
docker run kyberpunk/keycloak

暴露到本地主机

要在本地访问Keycloak,需映射8080端口:

bash
docker run -p 8080:8080 kyberpunk/keycloak

创建管理员账户

默认未创建管理员用户,无法登录管理控制台。需通过环境变量设置初始用户名和密码:

bash
docker run -e KEYCLOAK_USER=<用户名> -e KEYCLOAK_PASSWORD=<密码> kyberpunk/keycloak

也可在运行中的容器上创建账户:

bash
docker exec <容器ID> /opt/jboss/keycloak/bin/add-user-keycloak.sh -u <用户名> -p <密码>

然后重启容器:

bash
docker restart <容器ID>

通过文件提供用户名和密码

在上述两个环境变量后添加 _FILE(即 KEYCLOAK_USER_FILE 和 KEYCLOAK_PASSWORD_FILE),可通过文件提供凭据,适用于Docker Swarm的配置和密钥管理。

导入领域

创建管理员账户并导入已导出的领域:

bash
docker run -e KEYCLOAK_USER=<用户名> -e KEYCLOAK_PASSWORD=<密码> \
    -e KEYCLOAK_IMPORT=/tmp/example-realm.json -v /tmp/example-realm.json:/tmp/example-realm.json kyberpunk/keycloak

导出领域

如需导出已创建/更新的领域,需确保容器已挂载卷。例如,启动Keycloak:

bash
docker run -d -p 8180:8080 -e KEYCLOAK_USER=admin -e \
KEYCLOAK_PASSWORD=admin -v $(pwd):/tmp --name kc \
kyberpunk/keycloak

执行导出命令(使用 -Djboss.socket.binding.port-offset=100 避免端口冲突):

bash
docker exec -it kc /opt/jboss/keycloak/bin/standalone.sh \
-Djboss.socket.binding.port-offset=100 -Dkeycloak.migration.action=export \
-Dkeycloak.migration.provider=singleFile \
-Dkeycloak.migration.realmName=my_realm \
-Dkeycloak.migration.usersExportStrategy=REALM_FILE \
-Dkeycloak.migration.file=/tmp/my_realm.json

更多导出选项详见Keycloak官方文档:导出与导入。

数据库支持

支持H2、MySQL、PostgreSQL、MariaDB、Oracle或Microsoft SQL Server作为数据库。可通过 DB_VENDOR 环境变量指定数据库类型,支持值:

  • h2:嵌入式H2数据库
  • postgres:PostgreSQL数据库
  • mysql:MySQL数据库
  • mariadb:MariaDB数据库
  • oracle:Oracle数据库
  • mssql:Microsoft SQL Server数据库

若未指定 DB_VENDOR,镜像将自动检测:

  • 通过 getent hosts 检测默认主机名(postgres、mysql等,需使用用户定义网络)
  • 检测数据库特定的 _ADDR 环境变量(如 POSTGRES_ADDR,已弃用)

检测失败时默认使用嵌入式H2数据库。

环境变量

通用数据库配置变量(默认值因数据库而异):

  • DB_ADDR:数据库主机名(可选,PostgreSQL支持逗号分隔的多主机故障转移)
  • DB_PORT:数据库端口(可选,默认使用数据库默认端口)
  • DB_DATABASE:数据库名称(可选,默认 keycloak)
  • DB_SCHEMA:数据库模式名称(可选,PostgreSQL默认 public)
  • DB_USER:数据库用户名(可选,默认空)
  • DB_USER_FILE:通过文件指定数据库用户名(替代 DB_USER)
  • DB_PASSWORD:数据库密码(可选,默认空)
  • DB_PASSWORD_FILE:通过文件指定数据库密码(替代 DB_PASSWORD)

MySQL示例

创建用户定义网络

bash
docker network create keycloak-network

启动MySQL实例

bash
docker run --name mysql -d --net keycloak-network -e MYSQL_DATABASE=keycloak -e MYSQL_USER=keycloak -e MYSQL_PASSWORD=password -e MYSQL_ROOT_PASSWORD=root_password mysql

启动Keycloak实例

bash
docker run --name keycloak --net keycloak-network kyberpunk/keycloak

若MySQL实例名称非 mysql,需指定 DB_ADDR 环境变量。

PostgreSQL示例

创建用户定义网络

bash
docker network create keycloak-network

启动PostgreSQL实例

bash
docker run -d --name postgres --net keycloak-network -e POSTGRES_DB=keycloak -e POSTGRES_USER=keycloak -e POSTGRES_PASSWORD=password postgres

启动Keycloak实例

bash
docker run --name keycloak --net keycloak-network kyberpunk/keycloak -e DB_USER=keycloak -e DB_PASSWORD=password

若PostgreSQL实例名称非 postgres,需指定 DB_ADDR 环境变量。

MariaDB示例

创建用户定义网络

bash
docker network create keycloak-network

启动MariaDB实例

bash
docker run -d --name mariadb --net keycloak-network -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=keycloak -e MYSQL_USER=keycloak -e MYSQL_PASSWORD=password mariadb

启动Keycloak实例

bash
docker run --name keycloak --net keycloak-network kyberpunk/keycloak

若MariaDB实例名称非 mariadb,需指定 DB_ADDR 环境变量。

Oracle示例

需提供Oracle JDBC驱动。

下载Oracle JDBC驱动

  1. 下载对应Oracle版本的JDBC驱动
  2. 重命名文件为 ojdbc.jar

创建用户定义网络

bash
docker network create keycloak-network

启动Oracle实例

bash
docker run -d --name oracle --net keycloak-network -p 1521:1521 carloscastillo/rgt-oracle-xe-11g

启动Keycloak实例

bash
docker run -d --name keycloak --net keycloak-network -p 8080:8080 -v /path/to/jdbc/driver:/opt/jboss/keycloak/modules/system/layers/base/com/oracle/jdbc/main/driver kyberpunk/keycloak

或通过 docker cp 复制驱动:

bash
docker cp ojdbc.jar kyberpunk/keycloak:/opt/jboss/keycloak/modules/system/layers/base/com/oracle/jdbc/main/driver/ojdbc.jar

默认环境配置:

  • DB_ADDR: oracle
  • DB_PORT: 1521
  • DB_DATABASE: XE
  • DB_USER: SYSTEM
  • DB_PASSWORD: oracle

Microsoft SQL Server示例

创建用户定义网络

bash
docker network create keycloak-network

启动SQL Server实例

bash
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Password!23' -d --name mssql --net keycloak-network mcr.microsoft.com/mssql/server

创建数据库(SQL Server不支持环境变量创建数据库):

bash
docker run -d --name mssql-scripts --net keycloak-network mcr.microsoft.com/mssql-tools /bin/bash -c 'until /opt/mssql-tools/bin/sqlcmd -S mssql -U sa -P "Password!23" -Q "create database Keycloak"; do sleep 5; done'

启动Keycloak实例

bash
docker run --name keycloak --net keycloak-network -p 8080:8080 -e DB_VENDOR=mssql -e DB_USER=sa -e DB_PASSWORD=Password!23 -e DB_ADDR=mssql -e DB_DATABASE=Keycloak -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin kyberpunk/keycloak

指定JDBC参数

可通过 JDBC_PARAMS 环境变量指定JDBC连接参数,例如:

bash
docker run --name keycloak -e DB_VENDOR=postgres -e JDBC_PARAMS='connectTimeout=30' kyberpunk/keycloak

各数据库JDBC参数详情:

  • PostgreSQL
  • MySQL
  • MariaDB
  • Oracle
  • Microsoft SQL Server

添加自定义主题

扩展Keycloak镜像,将主题添加到 /opt/jboss/keycloak/themes 目录。

环境变量配置:

  • KEYCLOAK_WELCOME_THEME:欢迎页主题(需存在)
  • KEYCLOAK_DEFAULT_THEME:全局默认主题(默认 keycloak)

添加自定义提供程序

扩展Keycloak镜像,将提供程序添加到 /opt/jboss/keycloak/standalone/deployments/ 目录。

启动时运行自定义脚本

在 /opt/jboss/startup-scripts 目录放置脚本,支持:

  • WildFly .cli 脚本(建议使用离线模式,默认使用 standalone-ha.xml 配置)
  • 可执行脚本(需 chmod +x)

脚本按字母顺序执行。

通过Dockerfile添加脚本

dockerfile
FROM keycloak
COPY custom-scripts/ /opt/jboss/startup-scripts/

通过卷挂载脚本

bash
docker run -v /some/dir/my-script.cli:/opt/jboss/startup-scripts/my-script.cli kyberpunk/keycloak

使用自定义命令行选项启动

通过 JAVA_OPTS_APPEND 环境变量添加JVM启动参数,例如启用 upload_script 特性:

bash
docker run -e JAVA_OPTS_APPEND="-Dkeycloak.profile.feature.upload_scripts=enabled" kyberpunk/keycloak

集群

通过环境变量配置集群发现协议:

  • JGROUPS_DISCOVERY_PROTOCOL:发现协议名称(如 dns.DNS_PING)
  • JGROUPS_DISCOVERY_PROPERTIES:协议属性(格式 PROP1=FOO,PROP2=BAR)
  • JGROUPS_DISCOVERY_PROPERTIES_DIRECT:JBoss CLI格式属性(格式 {PROP1=>FOO,PROP2=>BAR})
  • JGROUPS_TRANSPORT_STACK:传输栈(udp 或 tcp,默认 tcp)

注意:JGROUPS_DISCOVERY_PROPERTIES 和 JGROUPS_DISCOVERY_PROPERTIES_DIRECT 不可同时设置。

PING示例(默认)

bash
docker run kyberpunk/keycloak

OpenShift DNS_PING示例

bash
docker run \
-e JGROUPS_DISCOVERY_PROTOCOL=dns.DNS_PING -e \
JGROUPS_DISCOVERY_PROPERTIES=dns_query=keycloak.myproject.svc.cluster.local \
kyberpunk/keycloak

分布式缓存所有者

  • CACHE_OWNERS_COUNT:分布式缓存所有者数量(默认1)
  • CACHE_OWNERS_AUTH_SESSIONS_COUNT:AuthenticationSessions副本数量(默认不复制)

Vault

Kubernetes/OpenShift文件明文Vault

将密钥文件挂载到 $JBOSS_HOME/secrets 目录,用于消费Kubernetes/OpenShift集群密钥。

杂项

指定前端基础URL

bash
docker run -e KEYCLOAK_FRONTEND_URL=https://keycloak.example.com kyberpunk/keycloak

指定日志级别

  • KEYCLOAK_LOGLEVEL:Keycloak日志级别(默认 INFO)
  • ROOT_LOGLEVEL:容器日志级别(默认 INFO)

支持级别:ALL、DEBUG、ERROR、FATAL、INFO、OFF、TRACE、WARN。

运行时修改日志级别:

bash
./keycloak/bin/jboss-cli.sh --connect --command='/subsystem=logging/console-handler=CONSOLE:change-log-level(level=DEBUG)'
./keycloak/bin/jboss-cli.sh --connect --command='/subsystem=logging/root-logger=ROOT:change-root-log-level(level=DEBUG)'
./keycloak/bin/jboss-cli.sh --connect --command='/subsystem=logging/logger=org.keycloak:write-attribute(name=level,value=DEBUG)'

启用代理地址转发

bash
docker run -e PROXY_ADDRESS_FORWARDING=true kyberpunk/keycloak

设置TLS(SSL)

挂载TLS证书和私钥到 /etc/x509/https 目录(文件名为 tls.crt 和 tls.key)。

添加CA证书:挂载CA文件并设置 X509_CA_BUNDLE 环境变量(空格分隔路径)。

启用指标

通过 KEYCLOAK_STATISTICS 环境变量启用指标(db、http、jgroups 或 all):

bash
docker run -e KEYCLOAK_STATISTICS=db,http kyberpunk/keycloak

调试

设置环境变量启用Java调试:

bash
docker run -e DEBUG=true -e DEBUG_PORT='*:8787' -p 8080:8080 -p '8787:8787' kyberpunk/keycloak

其他细节

基于 registry.access.redhat.com/ubi8-minimal 基础镜像构建。

从不同来源构建镜像

从GitHub仓库构建

bash
docker build --build-arg GIT_REPO=keycloak/keycloak --build-arg GIT_BRANCH=main .

从替代位置下载Keycloak

bash
docker build --build-arg KEYCLOAK_DIST=http://172.17.0.1:8000/keycloak-4.1.0.Final-SNAPSHOT.tar.gz .

Docker启动和停止

支持 docker start 和 docker stop,但配置变更需创建新容器。

更多相关 Docker 镜像与资源

以下是 kyberpunk/keycloak 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:

  • keycloak/keycloak Docker 镜像说明(Keycloak 身份与访问管理(IAM),适合 OIDC/SAML 单点登录与细粒度授权)
  • bitnami/keycloak Docker 镜像说明(Bitnami Keycloak 身份认证,适合 SSO、OIDC 与 OAuth2)

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 keycloak 镜像标签

docker pull docker.xuanyuan.run/kyberpunk/keycloak:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull kyberpunk/keycloak:<标签>

更多 keycloak 镜像推荐

keycloak/keycloak logo

keycloak/keycloak

keycloak
开源身份与访问管理工具,可轻松为应用添加认证并保护服务,无需处理用户存储或用户认证。
156 次收藏1000万+ 次下载
17 天前更新
bitnamicharts/keycloak logo

bitnamicharts/keycloak

bitnamicharts
Bitnami提供的Keycloak Helm Chart,用于在Kubernetes环境中简化开源身份与访问管理解决方案Keycloak的部署和管理。
3 次收藏1000万+ 次下载
9 个月前更新
camunda/keycloak logo

camunda/keycloak

camunda
Camunda Keycloak Docker镜像基于Keycloak官方或Bitnami镜像构建,支持AWS IAM角色(IRSA)数据库认证,提供可选Camunda身份认证登录主题,包含Quay-based(推荐生产使用)、Bitnami-based(遗留)和企业版变体,兼容PostgreSQL数据库。
1 次收藏10万+ 次下载
27 天前更新
elestio/keycloak logo

elestio/keycloak

elestio
Elestio验证打包的Keycloak镜像,提供开源身份与访问管理解决方案,支持用户认证、授权等核心功能。
1 次收藏5万+ 次下载
16 天前更新
airbyte/keycloak logo

airbyte/keycloak

airbyte
暂无描述
50万+ 次下载
16 天前更新
cleanstart/keycloak logo

cleanstart/keycloak

cleanstart
CleanStart Keycloak镜像是基于最小化CleanStart OS构建的安全加固容器,设计安全、运行高效,提供生产就绪的企业级Keycloak部署环境,具备全面安全特性和可靠执行能力。
9.9千+ 次下载
16 天前更新

查看更多 keycloak 相关镜像

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
kyberpunk/keycloak
教程轩辕镜像功能与使用教程
价格查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
官方公众号:源码跳动|官方技术交流群:51517718
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.