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

目录

一、前置环境准备

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

三、访问Web管理控制台

四、验证S3接口可用性

[1. 安装并配置awscli](#1. 安装并配置awscli)

[2. 指定自定义端点创建桶](#2. 指定自定义端点创建桶)

[3. 上传本地测试文件验证](#3. 上传本地测试文件验证)

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

六、简单使用场景小结

参考资料


之前陆续聊完了 RustFS 和 MinIO 的各项差异,不管是开源协议约束、GC 带来的性能抖动,还是海量小文件、Iceberg 元数据场景的表现差距,不少朋友看完都问能不能出一篇手把手部署教程,自己搭个本地环境实际测试对比。

刚好借助 Docker 可以做到一行命令启动,不用复杂编译配置,新手也能快速跑通整套服务,并且完整兼容标准 S3 接口,后续不管是对接 Iceberg、DuckDB,还是自用文件备份、本地开发调试都很合适,下面一步步带着大家完整部署。

一、前置环境准备

整个部署依赖 Docker 环境,先确认本机是否已经装好 Docker。

打开终端,输入下面命令校验版本:

bash 复制代码
docker -v

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

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

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

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

bash 复制代码
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. 末尾镜像名:自动拉取官方最新镜像版本

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

bash 复制代码
docker ps

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

三、访问Web管理控制台

打开浏览器输入地址:

bash 复制代码
http://localhost:9001

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

  • Access Key:admin

  • Secret Key:Admin@123456

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

四、验证S3接口可用性

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

1. 安装并配置awscli

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

bash 复制代码
aws configure

依次填入内容:

bash 复制代码
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 地址,创建测试桶命令:

bash 复制代码
aws s3api create-bucket --bucket test-bucket --endpoint-url http://127.0.0.1:9000

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

bash 复制代码
aws s3 cp test.txt s3://test-bucket --endpoint-url http://127.0.0.1:9000

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

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

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

bash 复制代码
# 停止服务
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- 与开发者交流经验和解决方案。

相关推荐
北龙云海1 小时前
案例分享 | 面向公网业务系统境内访问白名单配置实操方案
运维·网络·安全·网络安全·告警·数据泄露·入侵攻击
FoldWinCard1 小时前
D5 Linux 网络及端口命令
linux·运维·服务器
SakitamaX3 小时前
LVS(Linux Virtual Server)概念详解
linux·运维·lvs
小张同学a.3 小时前
Linux系统管理
linux·运维
会飞的小新3 小时前
Windows CMD 与 PowerShell 深度解析:底层原理、命令差异、自动化选型指南
运维·windows·自动化
代码村新手4 小时前
Linux的基本指令
linux·运维·服务器
MonolithIoT4 小时前
实战方案|设备备件无人值守仓库:连续化产线运维备件 7×24 小时数字化管控方案
运维·网络·数据库
gwf2165 小时前
磨损均衡算法(Wear Leveling)——SSD如何让每块闪存“公平退休“?
运维·数据库·人工智能·python·嵌入式硬件·算法·智能硬件
AAA@峥6 小时前
CentOS7 源码编译安装 MySQL5.7|SQL 基础操作 + 备份恢复完整实战
运维·数据库·sql·centos
码上上班6 小时前
docker课程
java·docker·容器