RustFS保姆级教程:Docker快速部署兼容S3的本地对象存储

📅 2026/7/5 14:22:24 👁️ 阅读次数 📝 编程学习
RustFS保姆级教程:Docker快速部署兼容S3的本地对象存储

目录

一、前置环境准备

二、一键启动RustFS容器(带数据持久化)

三、访问Web管理控制台

四、验证S3接口可用性

1. 安装并配置awscli

2. 指定自定义端点创建桶

3. 上传本地测试文件验证

五、日常常用容器运维命令

六、简单使用场景小结

参考资料


之前陆续聊完了 RustFS 和 MinIO 的各项差异,不管是开源协议约束、GC 带来的性能抖动,还是海量小文件、Iceberg 元数据场景的表现差距,不少朋友看完都问能不能出一篇手把手部署教程,自己搭个本地环境实际测试对比。
刚好借助 Docker 可以做到一行命令启动,不用复杂编译配置,新手也能快速跑通整套服务,并且完整兼容标准 S3 接口,后续不管是对接 Iceberg、DuckDB,还是自用文件备份、本地开发调试都很合适,下面一步步带着大家完整部署。

一、前置环境准备

整个部署依赖 Docker 环境,先确认本机是否已经装好 Docker。
打开终端,输入下面命令校验版本:

docker -v

如果输出版本号,说明环境就绪;如果提示命令不存在,自行安装 Docker Desktop(Windows/Mac)或 Docker Engine(Linux 服务器)即可,网上教程非常多,这里不再赘述。

另外建议预留少量磁盘空间,用来持久化存储上传的文件与元数据,避免容器删除之后数据全部丢失。

二、一键启动RustFS容器(带数据持久化)

最实用的部署方式是挂载本地目录做持久化,避免容器重建数据丢失,直接复制下面整条命令执行,按需修改里面参数即可。

docker run -d \ --name rustfs \ -p 9000:9000 \ -p 9001:9001 \ -v /data/rustfs:/data \ -e RUSTFS_ACCESS_KEY=admin \ -e RUSTFS_SECRET_KEY=Admin@123456 \ rustfs/rustfs:latest

逐行简单解释每个参数含义,方便大家自定义修改:

  1. ​--name rustfs​:给容器设置名称,后续启停、查看日志方便识别

  2. ​-p 9000:9000​:S3 API 服务端口,外部客户端连接、程序读写对象都走这个端口

  3. ​-p 9001:9001​:配套管理控制台网页端口,浏览器访问可视化管理

  4. ​-v /data/rustfs:/data​:目录挂载,容器内部数据映射到本机/data/rustfs​,Windows系统可以改成类似D:\rustfs-data:/data​格式

  5. ​RUSTFS_ACCESS_KEY​:访问密钥ID,等同于S3的AK,客户端连接必填

  6. ​RUSTFS_SECRET_KEY​:密钥字符串,等同于S3的SK,注意复杂度避免过于简单

  7. 末尾镜像名:自动拉取官方最新镜像版本

执行完之后,输入查看容器运行状态:

docker ps

列表里能看到 rustfs 容器状态为 Up,就代表服务启动成功。

三、访问Web管理控制台

打开浏览器输入地址:

http://localhost:9001

登录账号就是上面环境变量配置的 AK、SK:

  • Access Key:admin

  • Secret Key:Admin@123456

进入后台之后可以直观创建存储桶、上传/删除文件、查看对象列表、修改基础权限,操作逻辑和 MinIO 控制台高度接近,用过同类产品几乎零学习成本。

四、验证S3接口可用性

RustFS 完整兼容标准 S3 协议,我们可以用 AWS 官方命令行工具 awscli​ 快速测试连通性。

1. 安装并配置awscli

安装完成后执行配置命令:

aws configure

依次填入内容:

AWS Access Key ID [None]: admin AWS Secret Access Key [None]: Admin@123456 Default region name [None]: local Default output format [None]: json

2. 指定自定义端点创建桶

对象存储本地部署需要手动指定 Endpoint 地址,创建测试桶命令:

aws s3api create-bucket --bucket test-bucket --endpoint-url http://127.0.0.1:9000

3. 上传本地测试文件验证

aws s3 cp test.txt s3://test-bucket --endpoint-url http://127.0.0.1:9000

上传完成后,不管用命令行列举对象,还是网页控制台进入桶内查看,都能看到对应文件,说明 S3 服务完全正常可用,后续业务代码基于 S3 SDK 接入没有任何适配门槛。

五、日常常用容器运维命令

日常启停、重启、查看日志整理了几条高频命令,收藏备用即可:

# 停止服务 docker stop rustfs # 重启服务 docker restart rustfs # 查看实时运行日志,排查报错用 docker logs -f rustfs # 删除容器(数据挂载目录不会被删除) docker rm rustfs

如果需要修改 AK、SK、端口等配置,停止并删除原有容器,重新执行自定义参数的 run 命令启动就行。

六、简单使用场景小结

  1. 本地开发调试:替代 MinIO 做项目本地 S3 联调,后续迁移线上改动极小;

  2. Iceberg、DuckLake 测试环境:快速搭建底层对象存储,验证湖仓读写逻辑;

  3. 个人小型文件备份:自建轻量化私有存储,不用依赖第三方云存储;

  4. 对比测试:搭一套 RustFS + 一套 MinIO,借助压测工程自行对比两者实际性能表现。

结合前面几篇选型内容来看,如果后续有私有化交付、海量小文件业务需求,这套部署方式也可以稍加调整适配服务器线上部署,作为长期可用的底层存储底座。

参考资料

[1] Docker 安装 RustFS​文档: https://docs.rustfs.com/installation/docker/


以下是深入学习 RustFS 的推荐资源:RustFS

官方文档: RustFS 官方文档- 提供架构、安装指南和 API 参考。

GitHub 仓库: GitHub 仓库 - 获取源代码、提交问题或贡献代码。

社区支持: GitHub Discussions- 与开发者交流经验和解决方案。