MinIO:S3 兼容高性能对象存储部署与 mc 客户端使用指南
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | https://github.com/minio/minio |
| 官网 | https://min.io |
| 文档 | https://docs.min.io |
| 开源协议 | AGPL-3.0 |
| 主要语言 | Go(约 99%) |
| Star 数 | 约 61k |
现状说明:本仓库 README 顶部明确标注 THIS REPOSITORY IS NO LONGER MAINTAINED。MinIO 社区版现在仅以源码形式分发,不再提供预编译二进制;官方转向 AIStor 商业版(AIStor Free 社区免费版 / AIStor Enterprise 企业版)。本文按其 README 记录源码安装与 Docker 部署方法。
MinIO 是高性能、S3 兼容的对象存储,AGPLv3 发布,面向 AI/ML、分析与数据密集型工作负载。
- S3 API 兼容,可无缝接入现有 S3 工具;
- 为 AI 与分析设计;
- 高性能,适合 demanding 存储负载。

二、官方图片
上图为 MinIO 仓库在 GitHub 上的社交预览图。
三、环境要求
- Go 1.24 及以上(源码安装方式);
- 或 Docker(用于构建镜像/运行);
- 一块用于存放对象数据的空目录/磁盘;
- 内存建议 2GB 以上。
四、部署步骤
方式一:从源码安装(推荐)
go install github.com/minio/minio@latest
跨平台编译:
env GOOS=linux GOARCH=arm64 go build
启动独立服务:
minio server /data
其中 /data 是本机任意空目录(存放对象数据)。
方式二:构建 Docker 镜像
先在源码根目录编译出 minio 二进制,再:
docker build -t myminio:minio .
运行:
docker run -p 9000:9000 -p 9001:9001 myminio:minio server /tmp/minio --console-address :9001
验证
MinIO 默认根凭据为 minioadmin:minioadmin。浏览器访问嵌入式 Console:
- API 地址:http://127.0.0.1:9000
- Console 控制台:http://127.0.0.1:9001(用
--console-address指定;不指定时为随机端口)
登录后即可创建 bucket、上传对象、浏览内容。
五、使用方法
1. 安装并配置 mc 客户端
mc alias set local http://localhost:9000 minioadmin minioadmin
mc admin info local
2. 桶与对象操作
mc mb data
mc cp ~/Downloads/mydata data/
mc ls data/
mc 提供类似 UNIX 的 ls/cat/cp/mirror/diff 等命令,同时支持文件系统与 S3 兼容存储。
3. Console 图形管理
浏览器打开 http://127.0.0.1:9001,用 root 凭据登录:
- 创建 bucket;
- 上传/下载对象;
- 配置访问策略(public/private)、生成访问密钥(Access Key/Secret Key);
- 用 S3 兼容 SDK(minio-go 等)在应用里读写。
4. 生产注意
README 提示:从源码编译的 MinIO 生产使用风险自担;AGPLv3 不提供保修。商用/专有场景需评估 AIStor 商业授权。
六、常见问题 FAQ
-
这个仓库还维护吗? README 明确不再维护;社区版改为仅源码分发,预编译二进制不再更新。新功能见 AIStor。
-
默认账号密码是什么?
minioadmin:minioadmin,生产环境务必通过环境变量MINIO_ROOT_USER/MINIO_ROOT_PASSWORD改掉。 -
API 和 Console 端口分别是? API 是 9000;Console 用
--console-address :9001指定,否则随机。 -
怎么用 mc 连本地?
mc alias set local http://localhost:9000 minioadmin minioadmin,之后mc ls local/...。 -
AGPL 协议有什么约束? 任何对 AGPL 代码的使用需遵守其开源义务,商用/转售需自行评估风险或购买商业授权。
-
能用在 Kubernetes 吗? 可以,用 MinIO Operator 或社区 Helm chart 部署。