轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
ivanfranchin/keycloak-clustered
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

keycloak-clustered Docker 镜像下载 - 轩辕镜像

keycloak-clustered 镜像详细信息和使用指南

keycloak-clustered 镜像标签列表和版本信息

keycloak-clustered 镜像拉取命令和加速下载

keycloak-clustered 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

keycloak-clustered
ivanfranchin/keycloak-clustered

keycloak-clustered 镜像详细信息

keycloak-clustered 镜像标签列表

keycloak-clustered 镜像使用说明

keycloak-clustered 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

keycloak-clustered基于Keycloak官方镜像扩展,便于轻松部署Keycloak集群。
5 收藏0 次下载activeivanfranchin镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

keycloak-clustered 镜像详细说明

keycloak-clustered 使用指南

keycloak-clustered 配置说明

keycloak-clustered 官方文档

keycloak-clustered 镜像文档

镜像概述和主要用途

keycloak-clustered 是基于 quay.io/keycloak/keycloak 官方 Docker 镜像的扩展版本,通过添加 JDBC_PING 集群发现协议,简化了 Keycloak 集群的部署和配置。该镜像旨在帮助用户快速构建支持分布式会话共享和高可用性的 Keycloak 集群环境,适用于开发测试和生产部署场景。

核心功能和特性

  • 继承官方功能:完全保留 Keycloak 官方镜像的所有功能和配置选项
  • JDBC_PING 协议集成:内置 JDBC_PING 集群发现机制,通过数据库实现节点自动发现
  • 多数据库兼容:支持 MySQL、MariaDB、PostgreSQL 等主流关系型数据库作为集群协调存储
  • 分布式会话共享:集群节点间自动同步用户会话和缓存数据
  • 灵活部署:支持 Docker 容器化部署和虚拟机环境部署,适配开发与生产场景

使用场景和适用范围

  • 开发环境:快速搭建本地 Keycloak 集群,验证分布式会话和高可用特性
  • 生产环境:构建多节点 Keycloak 集群,提供高可用的身份认证和授权服务
  • 企业级应用:需要跨节点会话共享、负载均衡和故障转移的认证系统
  • 云环境部署:优化云环境下的集群发现机制,解决传统 UDP 多播在云环境中的限制

支持的标签及 Dockerfile 链接

标签版本Dockerfile 链接
26.0.8, latestDockerfile
26.0.7Dockerfile
26.0.6Dockerfile
26.0.5Dockerfile
26.0.4Dockerfile
26.0.2Dockerfile
26.0.1Dockerfile
26.0.0Dockerfile
25.0.6Dockerfile
25.0.5Dockerfile
25.0.4Dockerfile
25.0.2Dockerfile
25.0.1Dockerfile
25.0.0Dockerfile

环境变量配置

基础环境变量

该镜像继承 Keycloak 官方镜像的所有环境变量,完整配置可参考 Keycloak 官方文档。常用基础变量包括:

环境变量描述默认值
KEYCLOAK_ADMIN管理员用户名-
KEYCLOAK_ADMIN_PASSWORD管理员密码-
KC_DB数据库类型(mysql/mariadb/postgres/mssql)-
KC_DB_URL_HOST数据库主机地址-
KC_DB_URL_DATABASE数据库名称keycloak
KC_DB_USERNAME数据库用户名-
KC_DB_PASSWORD数据库密码-
KC_LOG_LEVEL日志级别INFO

镜像特有环境变量

环境变量描述示例值
JGROUPS_DISCOVERY_EXTERNAL_IP集群节点外部IP/主机名keycloak-clustered-1

本地构建方法

进入对应版本目录,执行以下命令构建镜像:

docker build -t ivanfranchin/keycloak-clustered:latest .

集群部署指南

前置条件

  • 安装 Docker

使用 MySQL 部署集群

1. 创建 Docker 网络

docker network create keycloak-net

2. 启动 MySQL 容器

docker run --rm --name mysql -p 3306:3306 \
  -e MYSQL_DATABASE=keycloak \
  -e MYSQL_USER=keycloak \
  -e MYSQL_PASSWORD=password \
  -e MYSQL_ROOT_PASSWORD=root_password \
  --network keycloak-net \
  mysql:9.1.0

3. 启动 Keycloak 节点 1

docker run --rm --name keycloak-clustered-1 -p 8080:8080 \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  -e KC_DB=mysql \
  -e KC_DB_URL_HOST=mysql \
  -e KC_DB_URL_DATABASE=keycloak \
  -e KC_DB_USERNAME=keycloak \
  -e KC_DB_PASSWORD=password \
  -e KC_LOG_LEVEL=INFO,org.infinispan:DEBUG,org.jgroups:DEBUG \
  -e JGROUPS_DISCOVERY_EXTERNAL_IP=keycloak-clustered-1 \
  --network keycloak-net \
  ivanfranchin/keycloak-clustered:latest start-dev

4. 启动 Keycloak 节点 2

docker run --rm --name keycloak-clustered-2 -p 8081:8080 \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  -e KC_DB=mysql \
  -e KC_DB_URL_HOST=mysql \
  -e KC_DB_URL_DATABASE=keycloak \
  -e KC_DB_USERNAME=keycloak \
  -e KC_DB_PASSWORD=password \
  -e KC_LOG_LEVEL=INFO,org.infinispan:DEBUG,org.jgroups:DEBUG \
  -e JGROUPS_DISCOVERY_EXTERNAL_IP=keycloak-clustered-2 \
  --network keycloak-net \
  ivanfranchin/keycloak-clustered:latest start-dev

使用 MariaDB 部署集群

1. 创建 Docker 网络

docker network create keycloak-net

2. 启动 MariaDB 容器

docker run --rm --name mariadb -p 3306:3306 \
  -e MARIADB_DATABASE=keycloak \
  -e MARIADB_USER=keycloak \
  -e MARIADB_PASSWORD=password \
  -e MARIADB_ROOT_PASSWORD=root_password \
  --network keycloak-net \
  mariadb:10.11.10

3. 启动 Keycloak 节点 1

docker run --rm --name keycloak-clustered-1 -p 8080:8080 \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  -e KC_DB=mariadb \
  -e KC_DB_URL_HOST=mariadb \
  -e KC_DB_URL_DATABASE=keycloak \
  -e KC_DB_USERNAME=keycloak \
  -e KC_DB_PASSWORD=password \
  -e KC_LOG_LEVEL=INFO,org.infinispan:DEBUG,org.jgroups:DEBUG \
  -e JGROUPS_DISCOVERY_EXTERNAL_IP=keycloak-clustered-1 \
  --network keycloak-net \
  ivanfranchin/keycloak-clustered:latest start-dev

4. 启动 Keycloak 节点 2

docker run --rm --name keycloak-clustered-2 -p 8081:8080 \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  -e KC_DB=mariadb \
  -e KC_DB_URL_HOST=mariadb \
  -e KC_DB_URL_DATABASE=keycloak \
  -e KC_DB_USERNAME=keycloak \
  -e KC_DB_PASSWORD=password \
  -e KC_LOG_LEVEL=INFO,org.infinispan:DEBUG,org.jgroups:DEBUG \
  -e JGROUPS_DISCOVERY_EXTERNAL_IP=keycloak-clustered-2 \
  --network keycloak-net \
  ivanfranchin/keycloak-clustered:latest start-dev

使用 PostgreSQL 部署集群

1. 创建 Docker 网络

docker network create keycloak-net

2. 启动 PostgreSQL 容器

docker run --rm --name postgres -p 5432:5432 \
  -e POSTGRES_DB=keycloak \
  -e POSTGRES_USER=keycloak \
  -e POSTGRES_PASSWORD=password \
  --network keycloak-net \
  postgres:17.2

3. 启动 Keycloak 节点 1

docker run --rm --name keycloak-clustered-1 -p 8080:8080 \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  -e KC_DB=postgres \
  -e KC_DB_URL_HOST=postgres \
  -e KC_DB_URL_DATABASE=keycloak \
  -e KC_DB_SCHEMA=myschema \
  -e KC_DB_USERNAME=keycloak \
  -e KC_DB_PASSWORD=password \
  -e KC_LOG_LEVEL=INFO,org.infinispan:DEBUG,org.jgroups:DEBUG \
  -e JGROUPS_DISCOVERY_EXTERNAL_IP=keycloak-clustered-1 \
  --network keycloak-net \
  ivanfranchin/keycloak-clustered:latest start-dev

4. 启动 Keycloak 节点 2

docker run --rm --name keycloak-clustered-2 -p 8081:8080 \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  -e KC_DB=postgres \
  -e KC_DB_URL_HOST=postgres \
  -e KC_DB_URL_DATABASE=keycloak \
  -e KC_DB_SCHEMA=myschema \
  -e KC_DB_USERNAME=keycloak \
  -e KC_DB_PASSWORD=password \
  -e KC_LOG_LEVEL=INFO,org.infinispan:DEBUG,org.jgroups:DEBUG \
  -e JGROUPS_DISCOVERY_EXTERNAL_IP=keycloak-clustered-2 \
  --network keycloak-net \
  ivanfranchin/keycloak-clustered:latest start-dev

使用 Microsoft SQL Server 部署集群

警告:当前该配置存在问题,暂不推荐使用。

集群验证方法

验证会话共享

  1. 打开两个不同浏览器(如 Chrome 和 Chrome 无痕模式)
  2. 分别访问两个节点:http://localhost:8080 和 http://localhost:8081
  3. 使用管理员账号登录(用户名:admin,密码:admin)
  4. 左侧菜单点击 Sessions,应显示 admin 用户有 2 个会话

验证数据库集群表

以 MySQL 为例,进入数据库容器查看集群表:

# 进入 MySQL 终端
docker exec -it -e MYSQL_PWD=password mysql mysql -ukeycloak --database keycloak

# 查看 JGROUPSPING 表(集群节点信息)
mysql> SELECT * FROM JGROUPSPING;

集群清理步骤

  1. 停止 Keycloak 节点:在对应终端按 Ctrl+C
  2. 停止数据库容器:在数据库终端按 Ctrl+\
  3. 删除 Docker 网络:
docker network rm keycloak-net

虚拟机环境部署

前置条件

  • 安装 VirtualBox 和 Vagrant

部署步骤

  1. 克隆仓库并进入根目录
  2. 编辑 Vagrantfile 配置数据库类型(可选)
  3. 启动虚拟机集群:
vagrant up

虚拟机管理命令

  • 暂停虚拟机:vagrant suspend
  • 恢复虚拟机:vagrant up
  • 停止虚拟机:vagrant halt
  • 销毁虚拟机:vagrant destroy -f

重要说明

自 Keycloak 26.1.0 版本起,集群发现默认传输栈已切换为 JDBC-PING,简化了集群配置并提升了云环境兼容性。有关集群部署的详细指南,可参考以下文章:

  • 开发环境 Keycloak 集群部署指南
  • 生产环境 Keycloak 集群部署指南

参考文章

  • 使用 JDBC-PING 的 Keycloak 集群分布式缓存
  • 基于 Vagrant 和虚拟机的 Keycloak 集群配置
  • 基于 Docker Compose 的 Keycloak 集群配置

作者信息

Ivan Franchin

  • LinkedIn
  • GitHub
  • Medium
  • X
查看更多 keycloak-clustered 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 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 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.