无法连接到Keycloak管理面板

4
我遵循了这个教程,通过Docker运行了keycloak和postgres。因为端口8080已被我的前端应用程序占用,所以它改用了9990端口。 如日志所示:

13:26:00,602 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http 管理接口监听于 http://127.0.0.1:9990/management

13:26:00,603 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: 管理控制台监听于 http://127.0.0.1:9990

但是当我通过浏览器访问这些网址时,什么也没有发生。我还尝试去http://127.0.0.1:9990/auth/admin/,但它也无法工作。当我尝试连接时,在我的keycloak控制台中没有任何显示。
我按照教程的步骤进行操作,并没有进行任何额外的设置。有什么问题吗?
首先,我创建了一个用户定义网络:

docker network create keycloak-network

然后我运行了postgres:

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

最后是Keycloak:

docker run --name keycloak --net keycloak-network jboss/keycloak


你能把你用来启动Keycloak容器的命令粘贴一下吗? - krynio
@krynio 我已经编辑了我的帖子。 - Desiigner
2个回答

15
你需要发布Keycloak容器的端口(8080用于http,8443用于https)+重新映射端口,因为你的机器上已经使用了8080端口。例如:
docker run --rm \
  --name keycloak \
  --net keycloak-network \
  -e KEYCLOAK_USER=myadmin \
  -e KEYCLOAK_PASSWORD=mypassword \
  -p 9990:8080 \
  -p 9991:8443 \
  jboss/keycloak

Keycloak管理界面将在以下地址上提供:

  • http://<主机IP>:9990/
  • https://<主机IP>:9991/(在这种情况下将生成自签名证书,因此您需要在浏览器中批准TLS异常)

有关Keycloak中TLS证书的更多详细信息,请参阅:Keycloak Docker HTTPS required


太棒了!谢谢你! - Desiigner
1
我支持@Desiigner。这是一个非常出色的解决方案。该命令具有更多自定义选项。
docker run --rm --name keycloak --net <networkname> -e KEYCLOAK_USER=<keycloakuser> -e KEYCLOAK_PASSWORD=<keycloakpassword> -p 9990:8080 -p 9991:8443 --net <networkname> -e DB_VENDOR=<dbtype ex: postgres> -e JDBC_PARAMS='connectTimeout=30' -e DB_ADDR=<hostname>:<port> -e DB_DATABASE=<dbname> -e DB_SCHEMA=<dbschema> -e DB_USER=<dbuser> -e DB_PASSWORD=<dbpassword> jboss/keycloak
- Nageswara Rao
为什么这个命令在独立运行时能正常工作,但在通过Docker Compose启动时却无法工作? - undefined

2

如果有其他像我一样想从安装Keycloak快速开始学习Docker的人。

安装Keycloak在Docker上的完整路径,然后通过端口9990访问Web UI(您可以在最后一个命令中更改它):

最初的回答:

docker network create keycloak-network

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

docker run --rm --name keycloak --net keycloak-network -e KEYCLOAK_USER=myadmin -e KEYCLOAK_PASSWORD=mypassword -e DB_USER=keycloak -e DB_PASSWORD=password -p 9990:8080 -p 9991:8443 jboss/keycloak

该回答的区别于Kickstarter和之前的回答在于避免下面的错误:

最初的回答

"WFLYCTL0113: '' is an invalid value for parameter user-name

在最后一个命令中提供数据库用户名和密码。原始答案翻译成“最初的回答”。

这个案例对我有用,谢谢。 - Zhasulan Berdibekov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接