MinIO 简介

MinIO 是一个高性能、分布式对象存储系统,兼容 Amazon S3 API。它以开源形式发布,可以在本地服务器、私有云、公有云上部署,常用于替代或补充 AWS S3。

官方文档

MinIO | 企业级高性能对象存储 - MinIO 对象存储

核心特点

  • 对象存储:以对象(Object)为基本单位来保存文件及其元数据,适合海量非结构化数据(如日志、图片、视频、备份)。

  • S3 兼容性:完全兼容 Amazon S3 API,现有使用 S3 的应用几乎无需修改即可接入。

  • 高性能:用 Go 语言编写,专门针对大规模数据存储和高并发访问优化。

  • 可扩展:支持单机部署,也可以通过集群和分布式架构扩展到数十 PB 级别。

  • 安全机制:基于 Access Key / Secret Key 的认证,并支持细粒度的策略(Policy)来控制权限。

使用场景

  • 私有云对象存储:在企业内部搭建 S3 兼容存储服务。

  • 大数据与 AI:用于存放训练数据、模型文件、日志。

  • 备份与归档:替代传统 NAS,用于长期存储和分布式备份。

  • 文件共享与分发:结合 presigned URL,可临时或长期分享文件给第三方。

访问方式

  1. Web 控制台:浏览器上传/下载和管理文件。

  2. mc 客户端:官方命令行工具,支持创建用户、设置策略、管理存储桶。

  3. S3 SDK/工具链:可直接使用 AWS S3 的 SDK、CLI、甚至第三方软件接入。

使用Docker部署

环境Linux系统

已安装docker环境

准备docker-compose.yml

创建挂在目录

# mkdir /data/minio/{data,config} -p

version: '3.8'

services:
  minio:  # 服务名称为 minio
    image: minio/minio:RELEASE.2025-04-22T22-12-26Z  # 使用特定版本的 MinIO 镜像
    # 注意:如果使用最新镜像(latest),控制台功能可能会缺失
    # image: minio/minio:latest  # 使用最新镜像,但控制台功能可能不完整
    container_name: minio  # 容器名称为 minio
    ports:
      - "8000:8000"  # 将主机的 8000 端口映射到容器的 8000 端口(服务端口)
      - "8001:8001"  # 将主机的 8001 端口映射到容器的 8001 端口(控制台端口)
    environment:
      TZ: Asia/Shanghai  # 设置时区为上海
      MINIO_ROOT_USER: admin  # MinIO 管理员用户名
      MINIO_ROOT_PASSWORD: admin123  # MinIO 管理员密码
    volumes:
      - /data/minio/data:/data  # 挂载本地目录 /data/minio/data 到容器内的 /data
      - /data/minio/config:/root/.minio/  # 挂载本地目录 /data/minio/config 到容器内的 /root/.minio/
    command: server --address "0.0.0.0:8000" --console-address "0.0.0.0:8001" /data  # 启动 MinIO 服务
    privileged: true  # 使用特权模式(谨慎使用)
    network_mode: "bridge"  # 使用桥接网络模式

访问

访问 http://docker主机IP:8001 账号:admin 密码:admin123 可以在 env自定义账号密码

新版本的镜像作者把其它功能移除了只可以创建Bucket

所以建议使用之前的镜像版本

minio/minio:RELEASE.2025-04-22T22-12-26Z

minio/minio:RELEASE.2025-04-22T22-12-26Z-cpuv1

这样就可以配置ldap、accesskey、policies等策略了。

配置policies

待更新。。。。。

配置LDAP

待更新