在docker中更改keycloak的默认端口

问题描述 投票:0回答:5

我已经在docker中登录了虚拟机,但找不到standalone.sh,它不在/bin中。我也不知道如何编写设置 -Djboss.socket.binding.port-offset=100

的 dockerfile
keycloak
5个回答
14
投票

您可以将端口作为 -Djboss.http.port 参数传递,例如:

 docker run --name keycloak -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -p 11111:11111 jboss/keycloak -Djboss.http.port=11111

8
投票

使用Keycloak 19+:

keycloak:
    image: quay.io/keycloak/keycloak:19.0.1
    environment:
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: admin
    command: ["start-dev", "--http-port=8888"]

5
投票

下面是一个示例 docker-compose YAML 文件,它显示您可以在命令中设置偏移量。请根据您的设置进行更改。

version: '2.1'
services:
  keycloak:
    image: jboss/keycloak:4.5.0.Final
    container_name: keycloak
    user: change_it
    hostname: change_it
    command: ["-Djboss.socket.binding.port-offset=0"]
    extra_hosts:
            - "change_it"
    environment:
      - KEYCLOAK_USER=change_it
      - KEYCLOAK_PASSWORD=change_it
    ports:
      - 8080:8080
      - 8443:8443


2
投票

这对我有用,就像通过 docker 文件更改 keycloak 服务器的默认端口一样。 (keycloak 在 localhost:8100 上运行)

keycloak:
    build:
      context: ./keycloak
      dockerfile: ./Dockerfile
    environment:
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: admin
      KEYCLOAK_DEFAULT_THEME: custom 
      KEYCLOAK_WELCOME_THEME: keycloak 
      DB_VENDOR: h2
    container_name: keycloak-container
    command: ["-Djboss.http.port=8100"]
    # Uncomment for development purpose
    # volumes:
    #   - ${PWD}/keycloak/theme/custom:/opt/jboss/keycloak/themes/custom
    ports:
      - 8100:8100

0
投票

如果容器已经创建。

  1. 停止容器
docker stop <container_name>
  1. 提交容器
docker commit keycloak keycloak2
  1. 使用新端口重新运行
docker run -p 28080:28080 -td keycloak2 start-dev --http-port=28080
© www.soinside.com 2019 - 2024. All rights reserved.