You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac在Docker容器中安装Keycloak出现SocketException报错

问题根因
  • 你使用的jboss/keycloak是官方已停止维护的 legacy 镜像,仅提供x86_64架构版本,无M1芯片对应的arm64适配。Docker在M1设备上通过Rosetta2转译运行x86镜像时,UDP协议相关的socket系统调用存在兼容缺陷,直接触发报错。
  • 报错核心触发点是Keycloak依赖的WildFly组件默认开启了基于UDP的集群发现功能,转译环境不支持该操作,导致后续依赖服务全部启动失败。
解决方案

方案1(优先推荐,原生适配M1架构)

使用官方新的Quarkus架构Keycloak镜像,该镜像已原生支持arm64架构,无需转译,性能更高,启动命令如下:

docker run -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin -p 8080:8080 quay.io/keycloak/keycloak:latest start-dev

注意:新镜像开发环境需添加start-dev参数,生产环境需按照规范配置HTTPS、域名等相关参数。

方案2(兼容旧版jboss/keycloak镜像)

如果必须使用旧版jboss/keycloak镜像,可通过添加参数禁用UDP集群功能,强制转译运行x86版本,启动命令如下:

docker run --platform linux/amd64 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e JAVA_OPTS="-Djgroups.udp.enabled=false" -p 8080:8080 jboss/keycloak

内容的提问来源于stack exchange,提问作者MAYANK THAKUR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:45:05