使用Docker Compose搭建4台主机MinIO分布式集群报错如何解决
错误根因
- 分布式节点配置格式错误:bitnami MinIO的
MINIO_DISTRIBUTED_NODES参数需要填写所有节点的完整存储端点,你仅填写了IP地址,未携带存储路径,导致节点间无法识别正确的存储位置,触发磁盘在线数不足报错。 - 镜像版本未固定:使用
latest标签会导致不同主机拉取的镜像实际构建版本存在差异,即使API版本号一致也会触发MinIO严格的版本一致性校验,你遇到的同版本号仍提示滚动升级不允许的问题就是该原因导致。 - 存储路径不匹配:你在配置中挂载了
/data1、/data2两个存储卷,但未在节点配置中声明对应路径,MinIO无法定位存储资源。 - 网络配置冗余:跨主机部署无需配置本地bridge网络,只需确保4台主机的9000、9001端口互相可通即可。
可行实现方案
前置要求
4台主机IP为10.10.10.1、10.10.10.2、10.10.10.3、10.10.10.4,互相之间9000、9001端口无防火墙/安全组限制,所有主机提前拉取固定版本的MinIO镜像,禁止使用latest标签。
配置模板
4台主机使用完全一致的docker-compose.yml配置,无需针对不同IP做修改:
version: '3.8' services: minio: image: bitnami/minio:2024.5.10 restart: always ports: - "9000:9000" - "9001:9001" environment: - MINIO_ROOT_USER=user - MINIO_ROOT_PASSWORD=pass123 - MINIO_DISTRIBUTED_MODE_ENABLED=yes - MINIO_DISTRIBUTED_NODES=http://10.10.10.{1...4}/data{1...2} - MINIO_SKIP_CLIENT=yes volumes: - data1:/data1 - data2:/data2 volumes: data1: data2:
如果你使用的是旧版本MinIO,可将MINIO_ROOT_USER、MINIO_ROOT_PASSWORD换回原来的MINIO_ACCESS_KEY、MINIO_SECRET_KEY变量。
启动注意事项
- 启动前清空所有主机上之前部署MinIO产生的残留数据卷和缓存文件,避免旧的
format.json文件干扰集群初始化。 - 4台节点尽量同时启动,4节点集群需要至少3台节点在线才能完成初始化,低于该数量会一直卡在等待磁盘上线的状态。
- 启动后可通过任意节点的9001端口访问控制台,验证集群状态。
内容的提问来源于stack exchange,提问作者zeerk
相关产品推荐
相关产品推荐

