docker
  • docker教程
  • advanced
    • Docker 构建缓存指南
    • Docker清理数据卷(volume prune)
    • Docker分配CPU资源
    • Dockerfile+Maven插件构建SpringBoot镜像(推荐)
    • Dockerfile构建SpringBoot镜像
    • docker-find-volume-container-mapping
    • idea配置docker
    • Docker inspect 检测所有容器挂载状态的脚本
    • Docker inspect 查看容器、镜像的高级用法
    • Docker Jenkins进阶配置
    • 基于jenkins容器部署SpringBoot应用构建镜像(基于Dockerfile+Maven插件构建)
    • Keycloak Docker容器部署文档
    • Keycloak Docker容器部署文档
    • hostname-strict 参数详解
    • docker-keycloak-image
    • docker-keycloak-prod
    • Maven插件构建SpringBoot镜像(二)
    • 基于Maven插件为SpringBoot应用构建镜像并推送到远程_私人仓库(Docker Hub)
    • Maven插件构建SpringBoot镜像(一)
    • Docker MongoDB进阶配置
    • Docker 多阶段构建指南
    • Docker MySql进阶配置
    • Docker network进阶配置
    • Docker Nginx进阶配置
    • Docker清理悬空镜像(空(none)镜像)
    • Docker pip install --no-cache-dir
    • Docker redis进阶配置
    • Docker安全的清理匿名数据卷
    • Docker Bind Mount vs Volume 的区别
  • concepts
    • docker、docker engine和docker desktop区别
    • 架构
    • 什么是容器?
    • 什么是镜像?
    • 什么是Docker?
    • 什么是仓库?
  • docker-compose
    • Docker Compose 锚点的用法
    • docker-compose 编排多服务
    • docker-compose 常用命令
    • docker-compose 部署jenkins
    • docker-compose安装mySql
    • docker-compose网络配置
    • docker-compose安装nginx
    • docker-compose安装redis
    • docker Compose 示例1
  • docker-hub
    • Docker Hub账号服务说明
  • install
    • CentOS Docker 安装
    • Debian Docker 安装
    • Docker 安装 Apache
    • Docker 安装 CentOS
    • Docker 安装 Elasticsearch
    • Docker 安装 GitLab
    • Docker 安装 Jenkins
    • Docker 安装 MongoDB
    • Docker 安装 MySQL
    • Docker 安装 Nginx
    • Docker 安装 Node.js
    • Docker 安装 PHP
    • Docker 安装 Portainer
    • Docker Python 官方镜像使用说明(TAG说明)
    • Docker 安装 Python
    • Docker 安装 Redis
    • Docker 安装 Tomcat
    • Docker 安装 Ubuntu
    • Docker 安装 Wordpress
    • Docker 国内镜像加速
    • MacOS Docker 安装
    • Ubuntu Docker 安装
    • Windows Docker 安装
  • manual
    • Docker attach 命令
    • Docker build 命令
    • Docker 清理命令
    • Docker命令大全
    • Docker commit 命令
    • docker-compose-run-command
    • Docker cp 命令
    • Docker create 命令
    • Docker diff 命令
    • Docker rm 命令
    • Docker exec 命令
    • Docker export 命令
    • Docker history 命令
    • Docker images 命令
    • Docker import 命令
    • Docker info 命令
    • Docker inspect 命令
    • Docker kill 命令
    • Docker load 命令
    • Docker login/logout 命令
    • Docker logs 命令
    • Docker network 命令
    • Docker pause/unpause 命令
    • Docker port 命令
    • Docker 常见问题
    • Docker ps 命令
    • Docker pull 命令
    • Docker push 命令
    • Docker rename 命令
    • docker-resources
    • Docker rm 命令
    • Docker rm 命令
    • Docker run 命令
    • Docker save 命令
    • Docker search 命令
    • Docker start/stop/restart 命令
    • Docker stats 命令
    • Docker tag 命令
    • Docker top 命令
    • Docker version 命令
    • Docker version 命令
    • Docker wait 命令
    • diff
      • Docker Compose 和 docker-compose 区别
      • Docker import、export 与 save、load 命令 区别
  • usage
    • Docker docker-compose 使用
    • Docker 容器连接
    • Docker 容器使用
    • Docker Dockerfile Ptyhon实战配置-1
    • Docker Dockerfile Ptyhon实战配置之多阶段构建-2
    • Docker Dockerfile
    • Docker 镜像使用
    • Docker Machine
    • Docker 仓库管理
    • Docker 重启策略
    • Swarm集群管理
  • assets
    • mysql
      • my.cnf
Powered by GitBook
On this page
  • 主要区别对比
  • 实际配置对比
  • 选择建议
  • 迁移注意事项

Was this helpful?

  1. advanced

docker-keycloak-image

基于搜索结果和我的了解,我来详细对比 Bitnami Keycloak 镜像与官方 Keycloak 镜像的区别:

主要区别对比

1. 基础系统

官方镜像 (quay.io/keycloak/keycloak)

  • 基于 Red Hat UBI (Universal Base Image)

  • 精简的基础系统

  • 最小化的运行时环境

Bitnami 镜像 (bitnami/keycloak)

  • 基于 Debian Linux

  • 包含更多系统工具和依赖

  • 更完整的 Linux 发行版环境

2. 镜像大小

# 官方镜像 - https://hub.docker.com/r/keycloak/keycloak
quay.io/keycloak/keycloak:26.2.5-0    # 约 400-500MB

# Bitnami 镜像 - https://hub.docker.com/r/bitnami/keycloak
bitnami/keycloak:26.2.5-debian-12-r0  # 约 600-800MB

3. 环境变量配置

官方镜像

environment:
  KC_BOOTSTRAP_ADMIN_USERNAME: admin
  KC_BOOTSTRAP_ADMIN_PASSWORD: admin
  KC_DB: mysql
  KC_DB_URL: jdbc:mysql://mysql:3306/keycloak
  KC_DB_USERNAME: root
  KC_DB_PASSWORD: password
  KC_HOSTNAME_STRICT: "false"
  KC_HTTP_ENABLED: "true"

Bitnami 镜像

environment:
  KEYCLOAK_ADMIN_USER: admin
  KEYCLOAK_ADMIN_PASSWORD: admin
  KEYCLOAK_DATABASE_VENDOR: mysql
  KEYCLOAK_DATABASE_HOST: mysql
  KEYCLOAK_DATABASE_PORT: 3306
  KEYCLOAK_DATABASE_NAME: keycloak
  KEYCLOAK_DATABASE_USER: root
  KEYCLOAK_DATABASE_PASSWORD: password

4. 启动方式差异

官方镜像

command:
  - start-dev
  - --hostname-strict=false
  - --http-enabled=true

Bitnami 镜像

# 通常不需要额外的启动命令
# 通过环境变量即可完成配置

5. 集群支持

官方镜像

  • 需要手动配置集群参数

  • 使用 KC_CACHE_STACK 等参数

Bitnami 镜像

  • 支持配置高可用集群,通过设置服务发现机制和缓存设置来实现

  • 提供更简化的集群配置选项

# Bitnami 集群配置示例
environment:
  KEYCLOAK_JGROUPS_DISCOVERY_PROTOCOL: JDBC_PING
  KEYCLOAK_CACHE_OWNERS_COUNT: 1
  KEYCLOAK_CACHE_OWNERS_AUTH_SESSIONS_COUNT: 1

6. 版本发布策略

官方镜像

  • 直接跟随 Keycloak 官方发布

  • 版本号与 Keycloak 版本完全一致

  • 发布频率更高

Bitnami 镜像

  • 在官方版本基础上进行额外打包

  • 版本号格式:{keycloak_version}-debian-{debian_version}-r{revision}

  • 发布可能略有延迟

7. 安全性考虑

官方镜像

  • 最小化攻击面

  • 定期安全更新

  • Red Hat 安全团队维护

Bitnami 镜像

  • 有报告显示 Bitnami 镜像可能包含更多漏洞

  • 基于 Debian 的更大攻击面

  • Bitnami 团队维护安全更新

实际配置对比

Docker Compose - 官方镜像

version: '3.8'
services:
  keycloak:
    image: quay.io/keycloak/keycloak:26.2.5-0
    environment:
      KC_BOOTSTRAP_ADMIN_USERNAME: admin
      KC_BOOTSTRAP_ADMIN_PASSWORD: admin
      KC_DB: mysql
      KC_DB_URL: jdbc:mysql://mysql:3306/keycloak
      KC_DB_USERNAME: root
      KC_DB_PASSWORD: password
      KC_HOSTNAME_STRICT: "false"
      KC_HTTP_ENABLED: "true"
    command:
      - start-dev
    ports:
      - "8080:8080"

Docker Compose - Bitnami 镜像

version: '3.8'
services:
  keycloak:
    image: bitnami/keycloak:26.2.5-debian-12-r0
    environment:
      KEYCLOAK_ADMIN_USER: admin
      KEYCLOAK_ADMIN_PASSWORD: admin
      KEYCLOAK_DATABASE_VENDOR: mysql
      KEYCLOAK_DATABASE_HOST: mysql
      KEYCLOAK_DATABASE_PORT: 3306
      KEYCLOAK_DATABASE_NAME: keycloak
      KEYCLOAK_DATABASE_USER: root
      KEYCLOAK_DATABASE_PASSWORD: password
      KEYCLOAK_ENABLE_STATISTICS: "true"
      KEYCLOAK_ENABLE_HEALTH_ENDPOINTS: "true"
    ports:
      - "8080:8080"

选择建议

选择官方镜像的情况:

  • 追求最小化镜像大小

  • 需要最新版本支持

  • 对安全性要求极高

  • 团队熟悉官方配置方式

  • 生产环境部署

选择Bitnami 镜像的情况:

  • 需要简化的配置方式

  • 需要额外的系统工具

  • 希望开箱即用的集群支持

  • 需要更多的运维友好特性

  • 开发和测试环境

迁移注意事项

如果从 Bitnami 迁移到官方镜像:

  1. 环境变量映射

# Bitnami → 官方
KEYCLOAK_ADMIN_USER → KC_BOOTSTRAP_ADMIN_USERNAME
KEYCLOAK_DATABASE_VENDOR → KC_DB
KEYCLOAK_DATABASE_HOST → KC_DB_URL (需要组装完整URL)
  1. 启动命令调整

  • 官方镜像需要显式指定启动模式

  • 可能需要额外的命令行参数

  1. 数据兼容性

  • 数据库结构完全兼容

  • 配置数据可以直接迁移

总结:官方镜像更适合生产环境和追求最小化的场景,而 Bitnami 镜像提供了更友好的开发体验和简化的配置选项。

Previoushostname-strict 参数详解Nextdocker-keycloak-prod

Last updated 4 days ago

Was this helpful?