Py学习  »  docker

Docker部署一款高性能、开源、云原生的对象存储系统详细文档

院长技术 • 6 月前 • 162 次点击  

技术交流群

欢迎各位大牛加入云原生技术交流群,群内不定时分享技术文档!
下面二维码为院长私人微信,请扫码添加微信邀请加入交流群!
如果二维码失效,请查看最新文章内的二维码或者通过公众号私信邀请加入技术群。
图片



0. MinIO 介绍

MinIO是一个高性能、开源、云原生的对象存储(Object Storage)系统,兼容Amazon S3 API,适用于大规模数据存储、备份、AI/ML 和大数据分析等场景。

官网https://min.io
GitHubhttps://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 网络(国内可能较慢)


如何选择?

  1. 推荐minio/minio:latest(Docker Hub)
    • 适用于大多数场景,拉取速度快,更新及时。
    • 默认docker pull minio/minio就是从 Docker Hub 获取。
  1. 使用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/TLSIAM 权限控制
  • 提供纠删码(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/

图片

院长书籍宣传页

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/185817