【发布时间】:2021-01-23 11:31:51
【问题描述】:
我正在单个系统上创建一个由三个 zookeeper docker 容器组成的集群。 第一个 zookeeper docker 的管理服务器使用 8080 端口启动,因此对于其他两个 Zoo 容器,它给出“无法绑定到 /0.0.0.0:8080,地址正在使用”。我使用 zoo 版本作为“zookeeper:3.5.6”。
现在我的问题是如何为zookeeper管理服务器分配8080以外的不同管理端口?
我尝试了不同的选项来在不同的端口上设置管理服务器,但没有任何效果。
1) - zookeeper.admin.serverPort=8078
2) - ZOO_CFG_EXTRA="admin.serverPort=8077"
3) - admin.serverPort=8078
以下是一位动物园管理员的 docker compose。
zk2:
hostname: ${LOCAL_HOST}
image: ${ZOOKEEPER_IMAGE}
environment:
- u=${USER}:${USER}
- JVM_OPTS=-Xmx12g -Xms12g -XX:MaxPermSize=2048m
- ZOO_MY_ID=${ZOO_MY_ID2}
- ZOO_SERVERS=${ZOO_SERVER_1} ${ZOO_SERVER_2} ${ZOO_SERVER_3}
- ZOO_ADMINSERVER_ENABLED=true
- ZOO_STANDALONE_ENABLED=false
- zookeeper.admin.serverPort=8078
volumes:
- ${VOLUMES_PATH}/zk2/data:/data
- ${VOLUMES_PATH}/zk2/logs:/datalog
network_mode: "host"
ports:
- ${ZOOK_CL_PORT2}:${ZOOK_CL_PORT2}
- ${ZOOK_SR_PORT2}:${ZOOK_SR_PORT2}
- ${ZOOK_EL_PORT2}:${ZOOK_EL_PORT2}
- ${ZOOK_ADM_PORT2}:8078"
谁能建议我怎么做?
【问题讨论】:
-
在docker compose中,可以指定zookeeper 3次,每次使用不同的端口。另外,将第一个作为主节点,另外两个作为工作节点。
标签: java docker apache-zookeeper