还在花钱买云存储?Docker本地跑个Minio,省钱又安全

2026-06-11 14:04:20 1点赞 9收藏 0评论

MinIO是一款高性能的开源对象存储服务器,兼容Amazon S3 API,适用于存储非结构化数据,如图片、视频、日志、备份等。它采用分布式架构设计,支持数据冗余和弹性扩展,同时提供简洁的Web管理界面。

和其他对象存储服务相比,具有以下优势:

  • 高性能:MinIO 采用并行架构和纠删码分布式存储,数据分片并行读写,支持 PUT/GET 操作高达 32GB/s 的吞吐量,在高并发场景下表现出色

  • S3 兼容性:MinIO 提供了与 AWS S3 API 完全兼容的接口,任何为 S3 构建的应用程序、工具和 SDK 都可以零修改地直接与 MinIO 对接,极大地降低了迁移成本和开发复杂度

  • 部署灵活简便:MinIO 是一个轻量级对象存储服务,单机模式下仅需一个二进制文件即可启动,支持 Docker 或 Kubernetes 快速扩展,可轻松部署,操作简单

  • 数据安全可靠:MinIO 支持多种复杂的服务器端加密方案,如 AES-256-GCM、ChaCha20-Poly1305 和 AES-CBC 等,可保护静态和动态数据

  • 成本优势:MinIO 是开源软件,可私有化部署

image-20251008143908083image-20251008143908083

一、Docker安装部署Minio应用

1、创建本地目录映射

mkdir -p /opt/docker/minio/data mkdir -p /opt/docker/minio/config cd /opt/docker/minio

2、Docker命令创建Minio应用

docker run -d --name minio-server --restart=always -p 9000:9000 -p 9001:9001 -e "MINIO_ROOT_USER=minio" # 账号 -e "MINIO_ROOT_PASSWORD=minio123456" # 密码 -v /opt/docker/minio/data:/data # 映射 数据文件 -v /opt/docker/minio/config:/root/.minio # 映射 配置文件 minio/minio server /data

参数解释:

  • -d:后台运行容器。

  • --restart=always:容器在崩溃或系统重启后自动重启。

  • --name "$DOCKER_NAME":容器的名称为 minio-server。

  • -e "MINIO_ROOT_USER=minio":设置 MinIO 的根用户。

  • -e "MINIO_ROOT_PASSWORD=minio123456":设置 MinIO 的根密码。

  • -v "/opt/docker/minio/data:/data":挂载数据目录到容器中。

  • -v "/opt/docker/minio/config:/root/.minio":挂载配置目录到容器中。

9000是MinIO服务默认端口,9001是MinIO Web端口

3、Docker Compose配置

services: minio: command: server /data --console-address ":9090" image: minio/minio:RELEASE.2025-04-22T22-12-26Z volumes: - './config:/root/.minio' - './data:/data' environment: - MINIO_ROOT_USER=minio - MINIO_ROOT_PASSWORD=minio123456 - MINIO_DOMAIN='https://xyz.minio.com/' #- MINIO_API_CORS_ALLOW_ORIGIN='https://xyz.minio.com/' ports: - '9000:9000' #映射 MinIO API 端口 - '9090:9090' #网页管理使用(控制台) container_name: minio restart: always ​

自定义容器-网页控制台端口:

command: server /data --console-address ":9090"

设置跨域可访问:

- MINIO_DOMAIN='https://xyz.minio.com/' #- MINIO_API_CORS_ALLOW_ORIGIN='https://xyz.minio.com/'

4、修改配置项(可选)

如果你需要修改 MinIO 的配置,可以直接修改/opt/docker/minio/config 目录下的配置文件。MinIO 支持通过环境变量配置许多功能,例如设置根用户、密码、访问密钥等。

在默认情况下,MinIO 启动时会根据容器内的配置文件进行初始化,因此你只需要确保挂载正确的配置文件即可。

5、访问MinIO服务

完成上述步骤后,你可以通过浏览器访问宿主机的 IP 地址和配置的端口,查看 MinIO是否正常运行。

如果使用了端口映射,例如 -p 9000:9000,则可以通过 http://宿主机IP:9000 访问 MinIO 服务

image-20251008145701736image-20251008145701736

二、Minio使用

2.1、访问 Minio 控制台

1)指定的用户名/密码:minio/minio123456 , 进入到 Minio 的管理后台:

image-20251008150747301image-20251008150747301

2)新建数据桶

image-20251008150855207image-20251008150855207

3)上传和浏览数据

使用Object Browser模块

1、点击Upload,上传文件

image-20251008151114206image-20251008151114206

2、预览文件

选择图片,点击Preview

image-20251008151157355image-20251008151157355image-20251008151243105image-20251008151243105

2.2、创建和管理Token

创建Token主要方便与第三方系统集成,比如提供图床、数据备份等存储服务

  1. 访问 MinIO 控制台

    默认端口9001,如http://192.168.1.100:9001),用管理员账号登录

  2. 通过侧边栏User-Access Keys模块,点击创建Token

  3. Token是一对组合,Access Key、Secret Key,过期时间默认最长不超过1年,过期后可续或重新创建

image-20251008151657956image-20251008151657956

4、第三方应用调用

如果是第三方调用,还涉及到Bucket、Region等信息

示例:

END_POINT即MinIO服务地址,不是Web,默认是9000

# S3 File Uploads LEAN_USE_S3=true # Set to true for using S3 LEAN_S3_KEY='' # S3 Key, hardcoded in s3ninja LEAN_S3_SECRET='' # S3 Secret, hardcoded in s3ninja LEAN_S3_BUCKET='' # S3 bucket name LEAN_S3_USE_PATH_STYLE_ENDPOINT=true # Sets the endpoint style: false => https://[bucket].[endpoint] ; true => https://[endpoint]/[bucket] LEAN_S3_REGION='' # S3 region LEAN_S3_FOLDER_NAME='' # Foldername within S3 (can be emtpy) LEAN_S3_END_POINT='' # S3 EndPoint S3 Compatible

三、注意事项

1、性能优化

避免大量小文件(<1MB)存储,可通过合并文件减少元数据开销;大文件采用分片上传,默认分片大小 5MB,可根据网络调整;利用 MinIO 缓存机制,将热点数据缓存至 SSD 或内存;合理设置并发参数,避免过度占用系统资源。

2、安全加固

创建强密码的管理员账户;强制开启 HTTPS,使用 TLS 1.2 + 协议加密传输;通过 IAM 策略精细化控制权限,遵循最小权限原则;启用服务器端加密(SSE)保护静态数据,密钥管理建议对接 KMS。

3、部署架构选择

开发测试可用单机模式,生产环境建议采用分布式部署,且节点数至少 4 个以实现高可用,单节点建议配置 4 块及以上磁盘,避免硬件单点故障

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
9
扫一下,分享更方便,购买更轻松