【minio】#1 | 简介与安装

简介:MinIO 第一课复习笔记,包含对象存储概念、S3 协议介绍、MinIO 特性、许可证坑点、Docker 一键部署实战,适合后端开发学习。

1. MinIO 是什么

MinIO 是一个高性能、分布式对象存储系统。 可以在自己的服务器、私有云或者边缘设备上搭建类似 AWS S3的对象存储服务。

典型场景:上传文件后获取文件访问链接,直接通过 HTTP 快速访问文件。

2. 对象存储基础概念

对象存储是一种用来存储大量非结构化数据的存储方案。

非结构化数据举例:图片、视频、音频、日志文件、备份文件、AI 训练数据。 这类数据特点:体积大、结构不固定,不适合直接存入数据库。

对象存储把数据封装成对象,每个对象包含三部分:

  1. 数据本身(文件内容)
  2. 元数据(文件大小、类型、创建时间等)
  3. 全局唯一 ID

对象存储特点

  • 容量可无限横向扩展
  • 读写性能高
  • 存储成本低
  • 适合海量非结构化数据
  • 访问方式:HTTP/HTTPS REST API
  • 行业标准:兼容 Amazon S3 API

3. 什么是 S3 API

S3 全称:Amazon Simple Storage Service,亚马逊 2006 年推出的对象存储服务。

S3 特点:

  • 简单易用
  • 无限容量
  • 高可靠、高可用
  • 通过 RESTful API 访问

S3 已经成为对象存储行业标准。 主流兼容 S3 API 的存储服务:

  • 阿里云 OSS
  • 腾讯云 COS
  • 华为云 OBS
  • Google Cloud Storage
  • Azure Blob Storage(部分兼容)

一句话总结:S3 是对象存储的标准接口,绝大多数对象存储产品都支持 S3 API。

4. MinIO 的核心特点

  1. 高性能:基于 Go 语言开发,读写性能极高,适合 AI 训练数据、视频、日志等大规模文件存储。
  2. 兼容 S3 API:几乎所有对接 S3 的工具、SDK、应用都可以直接接入 MinIO。
  3. 部署简单:单一二进制文件,无额外依赖;支持 Linux、Windows、macOS、容器、Kubernetes。
  4. 可扩展性强:支持单节点到大规模分布式集群,新增节点即可线性扩容容量与性能。
  5. 高可用性:支持多副本、纠删码(Erasure Code),多块硬盘 / 节点损坏也能保证数据不丢失。
  6. 安全性:提供 TLS、IAM 访问控制、对象锁定、加密等安全能力。

5. MinIO 许可证与版本坑

5.1 许可证变更问题

MinIO 在 RELEASE.2023-04-20 及之后版本,许可证由 Apache 2.0 修改为 GNU AGPL v3 + 商业许可证。

  • AGPL v3:商业闭源项目,如果直接修改 MinIO 核心代码并对外提供服务,需要开源相关代码; 仅作为工具部署使用(私有存储、学习、内部测试)不受 AGPL 约束,对学习者、中小企业友好。
  • Apache 2.0 旧版本:RELEASE.2023-03-20及更早版本,保留 Apache2.0,无强制开源约束。

5.2 Console Web 界面移除问题

RELEASE.2025-04-28及之后官方 Docker 镜像,默认移除内置 Console 可视化 Web 管理界面 。 需要单独启动minio console或者独立部署 Console 镜像。

新手建议选择 2025-04-08 版本,自带 Web 控制台,学习体验更好。

6. Docker 部署 MinIO(单节点测试模式)

单主机单磁盘模式:无扩容、无纠删容错,仅用于开发、测试环境,禁止生产使用。

6.1 拉取指定版本镜像

复制代码
docker pull minio/minio:RELEASE.2025-04-08T15-41-24Z

6.2 启动 MinIO 容器

复制代码
# 创建本地数据目录
mkdir -p /opt/minio/data

# 启动minio容器
docker run -d --name minio \
-p 9000:9000 -p 9001:9001 \
-v /opt/minio/data:/data \
minio/minio:RELEASE.2025-04-08T15-41-24Z \
server /data --console-address ":9001"

6.3 自定义账号密码(环境变量)

访问 Web 控制台:服务器9001端口。 默认账号密码:minioadmin / minioadmin。 使用环境变量自定义账号密码: MINIO_ROOT_USER 管理员用户名 MINIO_ROOT_PASSWORD 管理员密码

带自定义账号完整启动命令

复制代码
mkdir -p /opt/minio/data
docker run -d --name minio \
-p 9000:9000 -p 9001:9001 \
-e MINIO_ROOT_USER="admin" \
-e MINIO_ROOT_PASSWORD="12345678" \
-v /opt/minio/data:/data \
minio/minio:RELEASE.2025-04-08T15-41-24Z \
server /data --console-address ":9001"
  • 9000 端口:S3 API 服务端口(程序对接用)
  • 9001 端口:Web 可视化管理控制台(浏览器访问)
相关推荐
灯澜忆梦5 小时前
【minio】#2 | Web 控制台操作
对象存储·minio
江湖有缘12 小时前
3款开源绘图工具整理合集,可Docker一键部署!
docker·容器·开源
TTATTC12 小时前
告别协议选型内耗:深入拆解微服务“内部 gRPC + 边界 REST”混合通信架构与 Envoy 转码实战
docker·开源
梦想不只是梦与想1 天前
对象存储服务器vs数据库
数据库·对象存储·图片存储
光依旧1 天前
PageIndex没翻车,翻车的是我的解析器
docker·langchain·大模型·向量数据库·pdf解析·rag·pageindex
谢亮_vipxieliang1 天前
容器排障实战手册:从日志到内核的分层排障
docker·云原生·容器·eureka
梦想不只是梦与想2 天前
Docker 常用命令
docker
小白的码BUG之路2 天前
Docker -- 构建ruoyi-gateway镜像
docker·容器·gateway
小白的码BUG之路2 天前
Docker -- 构建ruoyi-system镜像
运维·docker·容器