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逐行简单解释每个参数含义,方便大家自定义修改:
--name rustfs:给容器设置名称,后续启停、查看日志方便识别
-p 9000:9000:S3 API 服务端口,外部客户端连接、程序读写对象都走这个端口
-p 9001:9001:配套管理控制台网页端口,浏览器访问可视化管理
-v /data/rustfs:/data:目录挂载,容器内部数据映射到本机/data/rustfs,Windows系统可以改成类似D:\rustfs-data:/data格式
RUSTFS_ACCESS_KEY:访问密钥ID,等同于S3的AK,客户端连接必填
RUSTFS_SECRET_KEY:密钥字符串,等同于S3的SK,注意复杂度避免过于简单
末尾镜像名:自动拉取官方最新镜像版本
执行完之后,输入查看容器运行状态:
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]: json2. 指定自定义端点创建桶
对象存储本地部署需要手动指定 Endpoint 地址,创建测试桶命令:
aws s3api create-bucket --bucket test-bucket --endpoint-url http://127.0.0.1:90003. 上传本地测试文件验证
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 命令启动就行。
六、简单使用场景小结
本地开发调试:替代 MinIO 做项目本地 S3 联调,后续迁移线上改动极小;
Iceberg、DuckLake 测试环境:快速搭建底层对象存储,验证湖仓读写逻辑;
个人小型文件备份:自建轻量化私有存储,不用依赖第三方云存储;
对比测试:搭一套 RustFS + 一套 MinIO,借助压测工程自行对比两者实际性能表现。
结合前面几篇选型内容来看,如果后续有私有化交付、海量小文件业务需求,这套部署方式也可以稍加调整适配服务器线上部署,作为长期可用的底层存储底座。
参考资料
[1] Docker 安装 RustFS文档: https://docs.rustfs.com/installation/docker/
以下是深入学习 RustFS 的推荐资源:RustFS
官方文档: RustFS 官方文档- 提供架构、安装指南和 API 参考。
GitHub 仓库: GitHub 仓库 - 获取源代码、提交问题或贡献代码。
社区支持: GitHub Discussions- 与开发者交流经验和解决方案。
