技术交流群
欢迎各位大牛加入云原生技术交流群,群内不定时分享技术文档!下面二维码为院长私人微信,请扫码添加微信邀请加入交流群!如果二维码失效,请查看最新文章内的二维码或者通过公众号私信邀请加入技术群。0. MinIO 介绍
MinIO是一个高性能、开源、云原生的对象存储(Object Storage)系统,兼容Amazon S3 API,适用于大规模数据存储、备份、AI/ML 和大数据分析等场景。
官网:https://min.io
GitHub:https://github.com/minio/minio
本文章使用了两个不同的镜像,具体看Web页面访问图效果,镜像具体说明如下:
minio/minio:latest 和 quay.io/minio/minio 镜像的区别
这两个镜像都是 MinIO 官方提供的 Docker 镜像,但它们的来源和更新策略有所不同:
对比项 | minio/minio:latest (Docker Hub)
|
quay.io/minio/minio (Quay.io)
|
镜像仓库 | Docker Hub (docker.io/minio/minio) | Red Hat Quay (quay.io/minio/minio) |
维护方 | MinIO 官方团队 | MinIO 官方团队 |
更新频率 | 主推镜像,通常最先更新 | 同步更新,但可能稍晚于 Docker Hub |
使用场景 | 推荐大多数用户使用 | 适用于需要 Quay.io 镜像仓库的环境(如OpenShift/Kubernetes) |
镜像内容 | 完全相同(都是官方构建) | 完全相同(都是官方构建) |
拉取速度 | 取决于 Docker Hub 网络 | 取决于 Quay.io 网络(国内可能较慢) |
如何选择?
- 推荐
minio/minio:latest(Docker Hub)
- 适用于大多数场景,拉取速度快,更新及时。
- 默认
docker pull minio/minio就是从 Docker Hub 获取。
- 使用
quay.io/minio/minio的情况
- 某些企业环境限制 Docker Hub,改用 Quay.io(如 Red Hat OpenShift)。
- 需要更高的镜像仓库可靠性(Quay.io 由 Red Hat 维护)。
1. MinIO 核心特点
✅高性能:
- 采用Golang编写,轻量级,支持高并发读写。
-
单机模式下可达数十 GB/s的吞吐量,分布式模式下性能线性扩展。
✅兼容 Amazon S3:
- 完全兼容AWS S3 API,现有 S3 应用可无缝迁移至 MinIO。
✅云原生 & Kubernetes 友好:
- 支持Kubernetes部署(Helm Chart 可用),适合云环境。
- 可作为持久化存储(PV/PVC)或AI/ML 数据湖。
✅数据安全:
- 支持加密(SSE-S3/SSE-C/KMS)、SSL/TLS、IAM 权限控制。
- 提供纠删码(Erasure Coding),数据冗余存储,防止丢失。
✅开源 & 企业版:
- 开源版(GNU AGPLv3)免费,适合个人和小型企业。
- 企业版提供更多高级功能(如多站点同步、审计日志)。
2. MinIO 核心概念
概念 | 说明 |
Bucket(存储桶) | 类似文件夹,用于存储对象(Object) |
Object(对象) | 存储的文件(如图片、视频、日志等) |
Access Key / Secret Key | 类似 S3 的认证密钥 |
Erasure Coding(纠删码) | 数据分片存储,提高容错性 |
MinIO Client(mc) | 命令行工具,管理 MinIO 存储 |
3. MinIO 适用场景
📌AI/ML 数据湖:存储训练数据集(如 TensorFlow/PyTorch)。
📌备份与归档:替代传统 NAS,兼容 S3 的备份工具(如 Velero、Restic)。
📌大数据分析:与 Hadoop、Spark、Presto 集成。
📌云原生存储:Kubernetes 持久化存储(PV/PVC)。
📌静态网站托管:类似 S3,可直接托管 HTML/CSS/JS。
4. MinIO vs 传统存储
对比项 | MinIO | 传统存储(NAS/SAN) |
协议 | S3 API(HTTP/HTTPS) | NFS/SMB/iSCSI |
扩展性 | 水平扩展(分布式) | 垂直扩展(单机) |
适用场景 | 云原生、大数据 | 传统文件共享 |
成本 | 更低(软件定义) | 较高(专用硬件) |
5. 总结
- MinIO 是开源的 S3 兼容对象存储,适合云原生、AI/ML、大数据场景。
- 支持分布式存储,高可用、高性能,适合企业级应用。
- 可替代 AWS S3,降低存储成本,尤其适合私有云/混合云。
6. MinIO 部署安装
Docker部署
# 创建持久化存储目录并赋值权限
mkdir -p /data/Minio/data
chmod -R 777 /data/Minio/data
# 创建服务
docker run -itd --name Minio \
-p 9000:9000 \
-p 9001:9001 \
-v /data/Minio/data:/data \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=deanit.cn" \
quay.io/minio/minio server /data --address ':9000' --console-address ":9001"
访问Web
地址:http://192.168.1.250:9001
用户: admin
密码:deanit.cn
登录成功页面
Docker-compose部署
# 创建持久化存储目录并赋值权限
mkdir -p /data/Minio/data
chmod -R 777 /data/Minio/data
# 创建服务
$ vim Minio.yml
version: '3'
services:
minio:
image: minio/minio:latest
container_name: minio
restart: always
command: server /data --address '0.0.0.0:9000' --console-address ":9001"
ports:
- 9000:9000
- 9001:9001
environment:
MINIO_DOMAIN: 0.0.0.0
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: deanit.cn
MINIO_HTTP_TRACE: /dev/stdout
volumes:
- /data/Minio/data:/data
# 如果使用宿主机网络模式,不用映射端口
# network_mode: "host"
# 创建服务并启动
docker-compose -f Minio.yml up -d
访问Web
地址:http://192.168.1.250:9001
用户: admin
密码:deanit.cn
登录成功页面
7.使用 mc 命令行管理
创建deanbucket存储桶
下载MinIO Client并连接上传文件
[root@Dean ~]# wget https://dl.min.io/client/mc/release/linux-amd64/mc
[root@Dean ~]# chmod +x mc && mv mc /usr/local/bin/
[root@Dean ~]# mc alias set myminio http://192.168.1.250:9000 admin deanit.cn
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
Added `myminio` successfully.
# 上传文件
[root@Dean nexus]# mc cp Minio.yml myminio/deanbucket
/root/nexus/Minio.yml: 505 B / 505 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 12.65 KiB/s 0s
查看deanbucket存储桶内容
🎉购买院长书籍,做技术大牛🎉
院长书籍链接:
https://deanit.cn/DeanBooks/
院长书籍宣传页