services: rabbitmq: image: registry.cn-chengdu.aliyuncs.com/reghao/rabbitmq:3.13.7-management-alpine container_name: rabbitmq restart: always hostname: node211 # 🚨 必须与物理机 hostname 一致 ports: - "5672:5672" - "15672:15672" - "25672:25672" # 🚨 必须暴露:集群节点间通信端口 - "4369:4369" # 🚨 必须暴露:EPMD 端口 volumes: - /etc/localtime:/etc/localtime:ro - /opt/docker/rabbitmq/data:/var/lib/rabbitmq - /opt/docker/rabbitmq/log:/var/log/rabbitmq environment: - RABBITMQ_DEFAULT_USER=test - RABBITMQ_DEFAULT_PASS=Test_123456 # 🚨 核心:三台机器的 Erlang Cookie 必须完全串联一致 - RABBITMQ_ERLANG_COOKIE=SecretRabbitCookie2026 - RABBITMQ_VM_MEMORY_HIGH_WATERMARK_RELATIVE=0.4 - RABBITMQ_DISK_FREE_ABSOLUTE_LIMIT=2GB # 让容器内也能识别三台机器的主机名 extra_hosts: - "node211:192.168.0.211" - "node212:192.168.0.212" - "node213:192.168.0.213" deploy: resources: limits: cpus: '1.0' memory: 1024M reservations: cpus: '0.1' memory: 512M logging: driver: "json-file" options: max-size: "100m" max-file: "3"