当前位置: 首页 > Linux运维 > Docker > MinIO替代品:使用Docker轻松部署RustFS高性能对象存储服务

MinIO替代品:使用Docker轻松部署RustFS高性能对象存储服务

发布于:2025-7-25 最后更新:2025-8-11 Docker 0条评论 4,348 views
本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

私有对象存储用得比较多的大概是MinIO了,但最近xiaoz在网上看到MinIO新版本删减了WEB控制台功能,且修改了License,最新版本的MinIO商业使用可能存在风险,这时候一般有两种选择:

  1. 继续使用旧版本MinIO:minio/minio:RELEASE.2022-05-26T05-48-41Z
  2. 寻找其它替代软件,比如:RustFS

这篇文章将要介绍的是使用Docker部署RustFS对象存储服务从而替代MinIO,有需要的开发人员、运维人员或企业可以参考。

关于RustFS

RustFS 是一个使用 Rust 构建的高性能分布式对象存储软件。与 MinIO 一样,它具有简单性、S3 兼容性、开源特性以及对数据湖、AI 和大数据的支持等一系列优势。此外,与其他存储系统相比,它采用 Apache 许可证构建,拥有更好、更用户友好的开源许可证。由于以 Rust 为基础,RustFS 为高性能对象存储提供了更快的速度和更安全的分布式功能。 —— 引用自官方介绍

2ccd9f4b6aff94d2.png

RustFS开源地址:https://github.com/rustfs/rustfs

RustFS特性

  • 高性能:使用 Rust 构建,确保速度和效率。
  • 分布式架构:可扩展且容错的设计,适用于大规模部署。
  • S3 兼容性:与现有 S3 兼容应用程序无缝集成。
  • 数据湖支持:针对大数据和 AI 工作负载进行了优化。
  • 开源:采用 Apache 2.0 许可证,鼓励社区贡献和透明度。
  • 用户友好:设计简单,易于部署和管理。

Docker部署RustFS

接下来演示如何使用Docker Compose单机部署RustFS(注意:如果是比较重要的生产环境建议集群部署),新建一个docker-compose.yaml文件,内容如下:

version: '3'

services:
  rustfs:
    container_name: rustfs
    image: rustfs/rustfs:latest
    ports:
      - "9000:9000"
    volumes:
      - ./data:/data
    environment:
      - RUSTFS_ACCESS_KEY=rustfsadmin
      - RUSTFS_SECRET_KEY=rustfsadmin
      - RUSTFS_CONSOLE_ENABLE=true
      - RUSTFS_SERVER_DOMAINS=example.com
    restart: unless-stopped

关键参数含义如下:

  • RUSTFS_ACCESS_KEY:可以简单理解为管理员用户名,务必自行修改
  • RUSTFS_SECRET_KEY:可以简单理解为管理员密码,务必自行修改
  • RUSTFS_CONSOLE_ENABLE:启用WEB控制台
  • RUSTFS_SERVER_DOMAINS:RustFS服务端域名

最后输入docker-compose up -d启动,然后访问http://IP:9000端口访问RustFS WEB服务端,选择密钥登录,并输入您设置的账号、密码完成登录。

c62f8972548641b4.png

Nginx反向代理

生产环境一般不推荐IP + 端口登录方式,通常通过Nginx反向代理后使用域名访问,下方的Nginx配置可以参考:

server {
    listen 443 ssl http2;
    server_name xxx.com;

    # SSL 证书配置(替换为你的证书路径)
    ssl_certificate /xxx.crt;
    ssl_certificate_key /xxx.key;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    # Allow special characters in headers
   ignore_invalid_headers off;
   # Allow any size file to be uploaded.
   # Set to a value such as 1000m; to restrict file size to a specific value
   client_max_body_size 0;
   # Disable buffering
   proxy_buffering off;
   proxy_request_buffering off;

location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;

      proxy_connect_timeout 300;
      # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      chunked_transfer_encoding off;

      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";

      proxy_pass http://IP:9000;
   }

}

# HTTP 跳转 HTTPS
server {
    listen 80;
    server_name xxx.com;
    return 301 https://$host$request_uri;
}

上述配置来自官方提供:https://github.com/rustfs/rustfs/issues/374 ,如果不按照官方配置,可能出现反代后无法登录的情况!

基本使用

后台界面

RustFS提供的WEB界面简单易用,并且默认支持中文和英语两种语言。

2cb33bf605825005.png

创建存储桶

在【存储桶界面右上方 - 创建存储桶 - 输入存储桶名称】,根据自身需要选择是否开启版本控制和对象锁即可。

0ed9b5b3931bacd1.png

对象管理

在文件浏览器中可以对文件对象进行基本管理操作(预览和删除),也可以新建新建目录和上传文件。

d22fc439267e074d.png

进阶使用

其他高级功能大家可以自行摸索,xiaoz个人觉得RustFS提供的WEB界面比MinIO的WEB界面更加易用。

Tips:RustFS完全兼容S3协议,因此您可以使用任意S3客户端来操作和管理RustFS

结语

MinIO新版License变更后,RustFS成为理想替代方案——基于Rust高性能开发、兼容S3协议、采用友好的Apache开源协议,为私有存储提供了更优选择。

RustFS官网:https://rustfs.com/


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注