services: zookeeper: image: registry.cn-chengdu.aliyuncs.com/reghao/zookeeper:3.8.4 # 生产环境建议锁定具体版本 restart: always container_name: zookeeper ports: - "2181:2181" volumes: - /opt/docker/zookeeper/data:/data - /opt/docker/zookeeper/datalog:/datalog - /opt/docker/zookeeper/logs:/logs environment: ZOO_MY_ID: 1 # 1. 自动清理快照和事务日志 (Data & DataLog) ZOO_AUTOPURGE_PURGEINTERVAL: 24 ZOO_AUTOPURGE_SNAPRETAINCOUNT: 5 # 2. 限制运行日志 (zookeeper.log) 的大小和数量 # 格式: [日志级别], [Appender] # RollingFile: 滚动文件模式 ZOO_LOG4J_PROP: "INFO, ROLLINGFILE" # 每个日志文件最大 100MB ZOO_LOG_MAXFILESIZE: "100MB" # 最多保留 10 个历史日志文件 ZOO_LOG_MAXBACKUPINDEX: 10 # 3. 资源配额与内存 JVMFLAGS: "-Xms512m -Xmx512m" ZOO_MAX_CLIENT_CNXNS: 60 deploy: resources: limits: cpus: '1.0' memory: 1G reservations: cpus: '0.5' memory: 512M logging: driver: "json-file" options: max-size: "100m" max-file: "3" healthcheck: # 使用官方提供的 zkServer.sh 状态检查工具 test: ["CMD", "zkServer.sh", "status"] interval: 10s timeout: 5s retries: 3