
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Keycloak Docker镜像是Keycloak服务器的容器化版本,支持arm64和amd64多架构。Keycloak是开源身份和访问管理解决方案,提供单点登录、OAuth 2.0、OpenID Connect等功能,用于保护各类应用的身份认证与授权。
适用于企业内部系统、SaaS应用、移动应用后端等需要身份认证和授权管理的场景,支持开发、测试和生产环境的单机或集群部署。
以独立模式启动Keycloak:
bashdocker run docker.xuanyuan.run/jboss/keycloak
将容器8080端口映射到本地,通过localhost访问:
bashdocker run -p 8080:8080 docker.xuanyuan.run/jboss/keycloak
默认无管理员用户,需通过环境变量创建:
bashdocker run -e KEYCLOAK_USER=<用户名> -e KEYCLOAK_PASSWORD=<密码> docker.xuanyuan.run/jboss/keycloak
也可在运行中容器创建账户:
bashdocker exec <容器ID> /opt/jboss/keycloak/bin/add-user-keycloak.sh -u <用户名> -p <密码> docker restart <容器ID>
通过文件提供用户名和密码
使用KEYCLOAK_USER_FILE和KEYCLOAK_PASSWORD_FILE环境变量从文件读取敏感信息,适用于Docker Swarm等环境的密钥管理。
创建管理员并导入领域配置:
bashdocker run -e KEYCLOAK_USER=<用户名> -e KEYCLOAK_PASSWORD=<密码> \ -e KEYCLOAK_IMPORT=/tmp/example-realm.json -v /tmp/example-realm.json:/tmp/example-realm.json docker.xuanyuan.run/jboss/keycloak
需挂载卷以保存导出文件,启动容器:
bashdocker run -d -p 8180:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin \ -v $(pwd):/tmp --name kc docker.xuanyuan.run/jboss/keycloak
执行导出命令(端口偏移避免冲突):
bashdocker 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
更多导出选项见https://www.keycloak.org/docs/latest/server_admin/index.html#_export_import%E3%80%82
支持多种数据库,通过DB_VENDOR指定类型(h2/postgres/mysql/mariadb/oracle/mssql),未指定时自动检测。
通用环境变量
DB_ADDR:数据库主机名(PostgreSQL支持逗号分隔的多主机)DB_PORT:数据库端口(默认取决于数据库类型)DB_DATABASE:数据库名称(默认keycloak)DB_SCHEMA:数据库模式(PostgreSQL默认public)DB_USER/DB_USER_FILE:数据库用户DB_PASSWORD/DB_PASSWORD_FILE:数据库密码数据库示例
MySQL:
bashdocker network create keycloak-network docker run --name docker.xuanyuan.run/mysql -d --net keycloak-network -e MYSQL_DATABASE=keycloak -e MYSQL_USER=keycloak -e MYSQL_PASSWORD=password -e MYSQL_ROOT_PASSWORD=root_password mysql docker run --name keycloak --net keycloak-network docker.xuanyuan.run/jboss/keycloak
PostgreSQL:
bashdocker network create keycloak-network docker run -d --name docker.xuanyuan.run/postgres --net keycloak-network -e POSTGRES_DB=keycloak -e POSTGRES_USER=keycloak -e POSTGRES_PASSWORD=password postgres docker run --name keycloak --net keycloak-network docker.xuanyuan.run/jboss/keycloak -e DB_USER=keycloak -e DB_PASSWORD=password
Oracle(需提供JDBC驱动):
bashdocker network create keycloak-network docker run -d --name oracle --net keycloak-network -p 1521:1521 docker.xuanyuan.run/carloscastillo/rgt-oracle-xe-11g docker run -d --name keycloak --net keycloak-network -p 8080:8080 -v /path/to/ojdbc.jar:/opt/jboss/keycloak/modules/system/layers/base/com/oracle/jdbc/main/driver/ojdbc.jar docker.xuanyuan.run/jboss/keycloak
指定JDBC参数
通过JDBC_PARAMS环境变量设置数据库连接参数:
bashdocker run --name keycloak -e DB_VENDOR=postgres -e JDBC_PARAMS='connectTimeout=30' docker.xuanyuan.run/jboss/keycloak
/opt/jboss/keycloak/themes,通过KEYCLOAK_WELCOME_THEME和KEYCLOAK_DEFAULT_THEME设置/opt/jboss/keycloak/standalone/deployments/将.cli脚本或可执行文件放入/opt/jboss/startup-scripts目录,按字母顺序执行:
dockerfileFROM docker.xuanyuan.run/keycloak COPY custom-scripts/ /opt/jboss/startup-scripts/
通过环境变量配置集群发现协议:
JGROUPS_DISCOVERY_PROTOCOL:协议名称(如dns.DNS_PING)JGROUPS_DISCOVERY_PROPERTIES:协议属性(PROP1=FOO,PROP2=BAR)JGROUPS_TRANSPORT_STACK:传输栈(udp/tcp,默认tcp)OpenShift示例:
bashdocker run -e JGROUPS_DISCOVERY_PROTOCOL=dns.DNS_PING -e JGROUPS_DISCOVERY_PROPERTIES=dns_query=keycloak.myproject.svc.cluster.local docker.xuanyuan.run/jboss/keycloak
KEYCLOAK_FRONTEND_URL设置固定前端基础URLKEYCLOAK_LOGLEVEL(Keycloak日志)和ROOT_LOGLEVEL(容器日志),支持DEBUG/INFO/WARN等PROXY_ADDRESS_FORWARDING=true启用代理环境支持/etc/x509/https目录(含tls.crt和tls.key)自动配置HTTPSKEYCLOAK_STATISTICS=db,http启用数据库和HTTP指标启用Java调试:
bashdocker run -e DEBUG=true -e DEBUG_PORT='*:8787' -p 8080:8080 -p '8787:8787' docker.xuanyuan.run/jboss/keycloak
从GitHub仓库构建:
bashdocker build --build-arg GIT_REPO=keycloak/keycloak --build-arg GIT_BRANCH=main .
从自定义地址下载分发版:
bashdocker build --build-arg KEYCLOAK_DIST=http://example.com/keycloak.tar.gz .
支持docker start和docker stop,配置变更需创建新容器。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 ikaruswill/keycloak 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: