我正在尝试运行 keycloak8089端口,如果我在该端口启动 docker 容器,我可以从以下位置访问 keycloak ui:http://本地主机:8089/
但我无法使用密钥斗篷主机名 (http://keycloak:8089/)或使用 http://127.0.0.1:8089。
如果我使用另一个端口,我可以使用 keycloak 主机名访问 UI。
我已经配置了 hosts 文件密钥斗篷主机名,并且 ping 到 keycloak 是可以的。
我努力了:
- 重新启动电脑
- 重新安装docker
- 使用 rancher 代替 docker
- 使用 8089:8089 作为 keycloak_demo 的端口
- 重置防火墙配置
如果我使用 8089:8089 作为 keycloak_demo 的端口,它将无法运行,因为 docker 上的 keycloak 在 8080 端口运行。
我没有在该端口运行任何其他容器。
看起来该端口出了问题。
任何帮助对我来说都意义重大。
Docker-compose yml
services:
keycloak_demo:
image: quay.io/keycloak/keycloak:22.0.5
command: start-dev
environment:
KC_DB: postgres
KC_DB_URL_HOST: postgres_keycloak_demo
KC_DB_URL_DATABASE: keycloak
KC_DB_PASSWORD: password
KC_DB_USERNAME: keycloak
KC_DB_SCHEMA: public
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
ports:
- "8089:8080"
depends_on:
postgres_keycloak_demo:
condition: service_healthy
networks:
- keycloak_demo_dev_network
postgres_keycloak_demo:
image: postgres:14.2
command: postgres -c 'max_connections=200'
volumes:
- pgdata_keycloak_demo:/var/lib/postgresql/data
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
healthcheck:
test: "exit 0"
ports:
- "5436:5432"
networks:
- keycloak_demo_dev_network
volumes:
pgdata_keycloak_demo:
networks:
keycloak_demo_dev_network:
driver: bridge
答案1
问题是端口 8089 被源代码控制(plastic SCM)使用,而 docker 没有显示任何警告