当前位置: 首页 > news >正文

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- 与开发者交流经验和解决方案。

http://www.gsyq.cn/news/1640666.html

相关文章:

  • 全套 MacBook 必调设置,瞬间适配私人Mac,上手教程分享
  • 【LE Audio】CSIP精讲[5]: 蓝牙协同设备组的安全防护体系与实战规范
  • 土木工程人必备的计算工具箱,免费无广告,大幅提升工作效率
  • 教培机构小程序搭建工具测评:餐宝盈/BBWEYY/比文云/Notion Sites/Carrd(2026年7月更新)含零代码SAAS、AI编程、源码定制交付
  • Kimi LeetCode 3464. 正方形上的点之间的最大距离 Rust实现
  • VLC Android电视版专业配置手册:解锁大屏媒体中心的终极潜力
  • Java面向对象课程设计:学生成绩管理系统
  • HarmonyOS ArkTS 实战:实现一个校园食堂排队取餐记录应用
  • 华为HarmonyOS设备上如何轻松配置microG服务框架:完整指南
  • OpenBMC:服务器的带外管理
  • Claude Code那些高级功(一)
  • 个人分享|小区物业管理系统源码与配套论文,课设毕设参考素材!
  • 第21讲:自定义类型:联合和枚举
  • LeRobot + LIBERO 机器人仿真评估全流程:模型下载、环境搭建与踩坑指南
  • Mi-Create终极教程:免费打造小米手表专属表盘的完整指南
  • 系统安全核心要素——构建“铜墙铁壁“的系统
  • Zed 新特性:Git面板视图重构,像VS Code看齐了。
  • 编译原理:高级程序语言的定义
  • 二极管、三极管、mos管
  • QA-GraphRAG:面向多跳推理的查询自适应即插即用检索框架
  • 会议复盘小知识:结构化导图梳理会议内容的技巧
  • 202638读书笔记|《商场B1,挤满“白吃白喝”的年轻人》——白吃白喝,热闹背后并非单纯的慷慨,免费的才是最贵的
  • APK安装器:在Windows上无缝安装安卓应用的终极解决方案
  • Appium移动端自动化测试入门:环境搭建、脚本编写与实战指南
  • Android 高级工程师面试:Java 多线程与并发 近1年高频追问 22 题
  • 接口测试全流程解析:从核心原理到Postman、JMeter、Apifox实战
  • GetQzonehistory:如何一键完整导出QQ空间说说并永久保存青春回忆
  • 终极Windows系统优化神器:五分钟让你的电脑焕然一新
  • 小小五子棋
  • 从PCF到Xenium:空间蛋白组与空间转录组如何互补解析GBM组织生态