前言
大家好,我是码农刚子。在数据量爆炸式增长的今天,图片、视频、日志、备份等非结构化数据的管理成为每个开发者都必须面对的课题。公有云对象存储(如 AWS S3)固然强大,但长期使用的成本令人咋舌,数据安全和合规风险也是绕不开的问题。那么,有没有一种方案,既能享受 S3 的生态便利,又能将数据牢牢掌握在自己手中?
答案是 MinIO。
本文将带你全面了解 MinIO 是什么、为什么它如此受欢迎,并手把手教你如何在 Windows、Linux、macOS 以及 Docker 环境中完成安装部署。
一、MinIO 是什么?
MinIO 是一个开源的、与 Amazon S3 API 完全兼容的高性能对象存储服务。你可以把它理解为一套可以部署在自己服务器上的私有 S3。
它采用 Go 语言开发,核心代码仅约 3 万行,以“简单、高性能、云原生”为核心设计理念,专为存储图片、视频、备份等大规模非结构化数据而设计。
核心特性
1. 极高性能
MinIO 对性能的追求近乎极致。通过 Go 语言的高并发特性、异步 I/O 以及对 NVMe SSD 的深度优化,官方数据显示,一个 32 节点的集群读写速度可达 325 GiB/s。在标准硬件上,单节点吞吐量也能达到惊人的水平。
2. S3 完全兼容
这是 MinIO 最核心的优势。它完整实现了 AWS S3 的核心 API,意味着所有为 S3 开发的工具、SDK 和应用——从 aws-cli、rclone 到 Hadoop、Spark——几乎无需修改即可直接对接 MinIO。
3. 云原生架构
MinIO 是为 Kubernetes 时代量身打造的。它提供官方 Docker 镜像,支持 Helm Chart 和 MinIO Operator,可以在 K8s 集群中作为 StatefulSet 运行,实现自动扩缩容、故障自愈和滚动升级。
4. 纠删码(Erasure Code)数据保护
MinIO 使用纠删码技术保障数据安全。它将一个对象切分为 N 个数据块和 M 个校验块,分散存储在不同磁盘上。相比传统三副本方案,纠删码在同等可靠性下存储开销更低(例如 8+4 配置下仅需 1.5 倍空间,而三副本需要 3 倍)。
5. 极致轻量
MinIO 是单个二进制文件,无任何外部依赖。下载即可运行,部署和维护极其简单。
典型应用场景
| 场景 | 说明 |
|---|---|
| Web / App 文件存储 | 作为图片、视频、用户上传文件的后端存储 |
| 备份与归档 | 数据库备份、服务器日志归档 |
| AI / 大数据 | 存储训练数据集、模型文件,对接 Spark、Hadoop |
| 混合云架构 | 本地开发用 MinIO,生产环境无缝切换至公有云 S3 |
二、安装前的准备
在开始安装之前,先了解 MinIO 的两个核心端口:
- API 端口:默认
9000,用于应用程序通过 S3 API 上传/下载文件 - 控制台端口:默认
9001,用于通过浏览器登录 Web 管理界面
⚠️ 重要提示:MinIO 是命令行工具,不能通过双击 exe 文件运行,必须通过命令行或脚本启动。
三、Windows 系统安装教程
1. 下载 MinIO 服务端
方式一:浏览器下载
访问 MinIO 官方下载页面:
https://www.minio.org.cn/download.shtml#/windows
选择 Windows 版本,下载 minio.exe 文件。

方式二:命令行下载
以管理员身份打开 PowerShell,执行:
Invoke-WebRequest -Uri "https://dl.min.io/server/minio/release/windows-amd64/minio.exe" -OutFile "C:\minio.exe"
2. 创建目录结构
在非系统盘(如 D 盘)根目录下创建以下文件夹:
D:\MinIO\
├── bin\ # 存放 minio.exe
├── data\ # 存放数据
└── logs\ # 存放日志
将下载的 minio.exe 剪切到 D:\MinIO\bin\ 目录下。

3. 设置管理员账号和密码
以管理员身份打开 CMD 或 PowerShell,进入 D:\MinIO\bin\ 目录,执行:
setx MINIO_ROOT_USER admin
setx MINIO_ROOT_PASSWORD 123456
用户名至少 3 个字符,密码至少 8 个字符。
4. 启动 MinIO 服务
在 D:\MinIO\bin\ 目录下打开终端,执行:
.\minio.exe server D:\MinIO\data --console-address ":9001" --address ":9000"
其中:
D:\MinIO\data是数据存储目录--console-address ":9001"指定控制台端口--address ":9000"指定 API 端口
5. 创建快捷启动脚本(可选)
在 D:\MinIO\bin\ 目录下新建 start.bat 文件,内容如下:
@echo off
chcp 65001 >nul
title MinIO Server
cd /d "%~dp0"
set MINIO_ROOT_USER=admin
set MINIO_ROOT_PASSWORD=123456
if not exist "..\data" mkdir ..\data
.\minio.exe server ..\data --console-address ":9001" --address ":9000"
pause
以后双击 start.bat 即可启动服务。
6. 访问控制台
浏览器打开 http://127.0.0.1:9001,用刚才设置的用户名和密码登录即可。

四、Linux 系统安装教程
方法一:使用预编译二进制文件(推荐)
1. 下载 MinIO 二进制文件
wget https://dl.min.io/server/minio/release/linux-amd64/minio
2. 授予执行权限
chmod +x minio
3. 创建数据目录并启动
mkdir -p /data/minio
./minio server /data/minio --console-address ":9001"
方法二:使用 RPM 包安装(适用于 CentOS/RHEL)
1. 下载并安装 RPM 包
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-*.rpm -O minio.rpm
yum install minio.rpm
2. 验证安装
minio --version
3. 创建数据目录并设置权限
mkdir -p /mnt/data
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown -R minio-user:minio-user /mnt/data
4. 配置环境变量
编辑 /etc/default/minio:
vim /etc/default/minio
添加以下内容:
MINIO_ROOT_USER="admin"
MINIO_ROOT_PASSWORD="your_password_here"
MINIO_VOLUMES="/mnt/data"
MINIO_OPTS="--address :9000 --console-address :9001"
5. 启动 MinIO 服务
systemctl start minio
systemctl enable minio # 设置开机自启
方法三:使用 APT 仓库安装(适用于 Ubuntu/Debian)
添加官方仓库并安装:
curl -fsSL https://dl.min.io/server/minio/release/linux-amd64/archive/minio_*.deb -o minio.deb
dpkg -i minio.deb
五、macOS 系统安装教程
方法一:使用 Homebrew(推荐)
brew install minio/stable/minio
如果之前安装过旧版本,建议先卸载再重新安装:
brew uninstall minio brew install minio/stable/minio
方法二:下载二进制文件
Intel 芯片(amd64):
curl -O https://dl.min.io/server/minio/release/darwin-amd64/minio
chmod +x ./minio
sudo mv ./minio /usr/local/bin/
Apple Silicon 芯片(arm64):
curl -O https://dl.min.io/server/minio/release/darwin-arm64/minio
chmod +x ./minio
sudo mv ./minio /usr/local/bin/
启动 MinIO
mkdir -p ~/data
minio server ~/data --console-address ":9001"
六、Docker 部署(跨平台通用)
Docker 方式是最简单、最干净的部署方案,适用于所有操作系统。
1. 拉取镜像
docker pull minio/minio:latest
2. 一键启动(开发测试)
docker run -d \
--name minio \
-p 9000:9000 \
-p 9001:9001 \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=your_password_here" \
minio/minio server /data --console-address ":9001"
3. 使用 Docker Compose(推荐生产环境)
创建 docker-compose.yml:
version: '3.8'
services:
minio:
image: minio/minio:latest
container_name: minio
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: your_password_here
volumes:
- ./data:/data
- ./config:/root/.minio
command: server /data --console-address ":9001"
restart: unless-stopped
启动服务:
docker-compose up -d
4. 验证部署
docker ps | grep minio
浏览器访问 http://localhost:9001 即可看到 MinIO 控制台。
七、首次登录与基本使用
无论通过哪种方式安装,启动成功后:
- 打开浏览器,访问
http://127.0.0.1:9001(或你的服务器 IP:9001) - 登录:使用你设置的
MINIO_ROOT_USER和MINIO_ROOT_PASSWORD - 创建 Bucket(存储桶):点击 "Create Bucket",输入名称即可
- 上传文件:进入 Bucket,点击上传按钮即可开始使用
八、常见问题与注意事项
| 问题 | 解决方案 |
|---|---|
| 启动时报错 "拒绝访问" | 右键以管理员身份运行命令行或脚本 |
| 密码太简单导致启动失败 | 确保密码至少 8 个字符 |
| 端口被占用 | 修改 --address 和 --console-address 端口 |
| 忘记密码 | 重新设置环境变量 MINIO_ROOT_PASSWORD 后重启 |
| Windows 下双击 exe 没反应 | MinIO 不能双击运行,必须通过命令行启动 |
九、总结
MinIO 以其高性能、S3 兼容、轻量部署、云原生友好等特性,已成为开源对象存储领域的事实标准。无论是个人项目的文件存储、团队内部的开发测试,还是企业级的生产环境,MinIO 都能提供一个成本可控、性能优越、数据自主的存储解决方案。
更重要的是,MinIO 采用 GNU AGPL v3 开源协议,完全免费使用,无需为软件授权支付任何费用。
小提示:如果你觉得本文对你有帮助,不妨收藏起来,下次部署 MinIO 时随时查阅!如果在安装过程中遇到问题,欢迎在评论区留言交流。😊