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

RustFS Docker 部署指南 (SNSD)

RustFS Docker 安装指南 (SNSD)

本篇博文博主将详细介绍如何使用 Docker 在单节点单磁盘 (Single Node Single Disk, SNSD)模式下安装和部署 RustFS。

概述:

  • RustFS 定义:一个高性能、100% S3 兼容的开源分布式对象存储系统。
  • SNSD 模式:单节点单磁盘部署模式。其后端不使用纠删码(zero erasure coding),因此没有额外的数据冗余。此模式适合本地测试和小规模应用场景
  • Docker 化:该文档基于 RustFS 官方的 Linux 二进制包,通过自定义的 Dockerfile 将 RustFS 及其运行时环境打包成容器镜像,并配置数据卷和环境变量,实现一键服务启动。

1. 前提条件 (Prerequisites)

主机要求:

  • Docker:已安装 Docker Engine (版本 ≥ 20.10),并且能够正常拉取镜像和运行容器。
  • 数据路径:主机上存在一个本地路径用于挂载对象数据,例如/mnt/rustfs/data(或者可以自定义路径)。

网络与防火墙:

  • 端口开放:确保主机上的端口9000对外部访问开放 (或者与您自定义的端口保持一致)。这是 RustFS 服务的默认端口。

配置文件准备:

  • 虽然 Docker 方式不一定强制使用/etc/rustfs/config.toml,但文档提及此路径可用于定义监听端口、管理员账户、数据路径等。对于容器化部署,更常用的是环境变量或命令行参数。
  • 重要权限说明:RustFS 容器以内置的非 root 用户rustfs(UID: 10001) 运行。当您使用-v参数将主机目录挂载到容器内部时,请务必确保主机目录的所有者已更改为 UID 10001,否则容器会因权限不足而无法写入数据,导致启动失败或运行异常。

2. 快速拉取 RustFS 官方镜像 (Quick Pull of RustFS Official Image)

dockerpull rustfs/rustfs

此命令会从 Docker Hub 拉取最新的 RustFS 官方镜像 (rustfs/rustfs:latest)。


3. 运行 RustFS 容器 (Run RustFS Container)

这是安装的核心步骤。提供了基础运行命令以及多种配置选项。

基础 SNSD Docker 运行方法:

dockerrun -d\--name rustfs_local\-p9000:9000\-p9001:9001\-v /mnt/rustfs/data:/data\rustfs/rustfs:latest\/data

参数解释:

  • -d: 在后台(detached mode)运行容器。
  • --name rustfs_local: 为容器指定一个自定义名称rustfs_local
  • -p 9000:9000: 将主机的 9000 端口映射到容器的 9000 端口(RustFS 服务端口)。
  • -p 9001:9001: 将主机的 9001 端口映射到容器的 9001 端口(RustFS 控制台端口)。
  • -v /mnt/rustfs/data:/data: 将主机的/mnt/rustfs/data目录挂载到容器内的/data目录,用于持久化存储对象数据。
  • rustfs/rustfs:latest: 指定要运行的 Docker 镜像。
  • /data: 这是一个必需参数,必须放在docker run命令的最后,它告诉 RustFS 在容器内使用哪个路径作为数据存储目录。

配置选项:

配置可以通过两种主要方式完成:环境变量(推荐) 和命令行参数

  • 环境变量方法 (Recommended):使用-e标志设置环境变量。这些变量会被 RustFS 进程读取。

    • RUSTFS_ADDRESS: 例如-e RUSTFS_ADDRESS=:9000,指定服务监听地址。
    • RUSTFS_SERVER_DOMAINS: 例如-e RUSTFS_SERVER_DOMAINS=example.com,设置服务器域名。
    • RUSTFS_ACCESS_KEY: 例如-e RUSTFS_ACCESS_KEY=rustfsadmin,设置 S3 API 访问密钥。
    • RUSTFS_SECRET_KEY: 例如-e RUSTFS_SECRET_KEY=rustfsadmin,设置 S3 API 私有密钥。
    • RUSTFS_CONSOLE_ENABLE: 例如-e RUSTFS_CONSOLE_ENABLE=true,启用内置 Web 控制台。
  • 命令行参数方法:直接在docker run命令中附加 RustFS 支持的命令行标志。

    • --address :9000: 指定服务监听地址。
    • --server-domains example.com: 设置服务器域名。
    • --access-key rustfsadmin: 设置 S3 API 访问密钥。
    • --secret-key rustfsadmin: 设置 S3 API 私有密钥。
    • --console-enable: 启用内置 Web 控制台。

示例:包含环境变量和命令行参数的复杂启动命令

dockerrun -d\--name rustfs_container\-p9000:9000\-p9001:9001\-v /mnt/rustfs/data:/data\-eRUSTFS_ACCESS_KEY=rustfsadmin\-eRUSTFS_SECRET_KEY=rustfsadmin\-eRUSTFS_CONSOLE_ENABLE=true\-eRUSTFS_SERVER_DOMAINS=example.com\rustfs/rustfs:latest\--address :9000\--console-enable\--server-domains example.com\--access-key rustfsadmin\--secret-key rustfsadmin\/data

注意事项:

  • 必需参数:<VOLUMES>(即/data这个路径参数) 必须始终放在docker run命令的末尾。
  • 基本配置示例:
    dockerrun -d\-p9000:9000\-p9001:9001\-v /mnt/data:/data\rustfs/rustfs:latest\/data
  • 启用控制台示例:
    dockerrun -d\-p9000:9000\-p9001:9001\-v /mnt/data:/data\-eRUSTFS_CONSOLE_ENABLE=true\rustfs/rustfs:latest\--console-enable\/data
  • 自定义认证密钥示例:
    dockerrun -d\-p9000:9000\-p9001:9001\-v /mnt/data:/data\-eRUSTFS_ACCESS_KEY=rustfsadmin\-eRUSTFS_SECRET_KEY=rustfsadmin\rustfs/rustfs:latest\--access-key rustfsadmin\--secret-key rustfsadmin\/data
  • 重要规则:
    • 端口映射必须对应:服务端口默认为 9000 (-p 9000:9000),控制台端口默认为 9001 (-p 9001:9001)。
    • 数据卷必须持久化:-v /host/path:/container/path是保证数据不随容器销毁而丢失的关键。
    • 环境变量和命令行参数可以混合使用,但是命令行参数的优先级高于环境变量
  • TLS 支持:如果计划使用 TLS,需要额外将证书路径挂载到容器内,并设置相关环境变量,例如:
    -v /path/to/certs:/certs\-eRUSTFS_TLS_PATH=/certs\

Docker Compose 安装方法:

RustFS 官方提供了一个docker-compose.yml文件,不仅包含 RustFS 服务,还集成了 Grafana、Prometheus、Jaeger、OpenTelemetry Collector 等可观测性组件。

  • 获取文件:

    gitclone git@github.com:rustfs/rustfs.gitcdrustfs# 进入克隆的仓库目录
  • 启动包含可观测性的全套服务:

    dockercompose --profile observability up -d

    这将根据docker-compose.yml中定义的observabilityprofile 启动 RustFS 以及相关的监控追踪服务。

  • 仅启动 RustFS 服务:
    如果你不想部署 Grafana、Prometheus 等可观测性服务,只想运行 RustFS 本身:

    1. 编辑docker-compose.yml文件,找到与rustfs-server服务相关的depends_on部分(通常是指向otel-collector的依赖),将其注释掉(在行首加#)。
    2. 运行以下命令:
      dockercompose -f docker-compose.yml up -d rustfs

    这样只会启动rustfs-server服务,即 RustFS 容器。

    你可以通过docker ps查看运行中的容器来确认。


4. 验证与访问 (Verification and Access)

查看容器状态和日志:

  • 使用docker logs <container_name>命令检查容器的日志输出。例如docker logs rustfs_local。日志应显示服务成功启动并在端口 9000 上监听的信息。

测试 S3 API:

  • 推荐使用mc(MinIO Client) 或其他任何 S3 兼容的客户端工具进行测试。
  • 示例(假设 RustFS 运行在localhost:9000,默认凭据为rustfsadmin/ChangeMe123!):
    # 设置别名mcaliassetrustfs http://localhost:9000 rustfsadmin ChangeMe123!# 创建一个名为 mybucket 的存储桶mcmb rustfs/mybucket# 列出 rustfs 别名下的存储桶mclsrustfs
  • 如果能成功创建存储桶并列出,说明部署有效。

访问 Web 控制台:

  • 如果在启动容器时启用了控制台 (RUSTFS_CONSOLE_ENABLE=true--console-enable),则可以通过浏览器访问http://<YOUR_HOST_IP>:9000来打开 Web 界面。
  • 使用默认的用户名和密码登录(通常是rustfsadmin/rustfsadmin,具体取决于你的配置)。

5. 其他建议 (Other Recommendations)

生产环境建议:

  • 使用多节点部署架构以提高可用性和性能。
  • 启用TLS加密通信以保障数据传输安全。
  • 配置日志轮转策略,防止日志文件无限增长。
  • 设立定期备份策略,保护元数据和对象数据。
  • 配置监控和告警(可利用 Docker Compose 中提供的可观测性栈)。

存储建议:

  • 使用本地 SSD 或 NVMe 存储以获得最佳 I/O 性能。
  • 避免使用网络文件系统 (NFS),因为其延迟和一致性问题可能影响性能和稳定性。
  • 确保 RustFS 使用的存储目录具有独占访问权,避免与其他应用共享同一物理路径。

source:
https://docs.rustfs.com/installation/docker/

http://www.cnnetsun.cn/news/783972.html

相关文章:

  • Java计算机毕设之基于vue的元宇宙平台的整车生产线管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • Java毕设选题推荐:基于Java的元宇宙平台的整车生产线管理系统整车生产线的虚拟仿真和实时监控【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Excel排名函数RANK完全指南:从基础到高级的排名技巧
  • 步进电机指数规律升降速的单片机控制系统设计
  • 西门子PLC一拖二恒压供水实战手记
  • 基于LSTM神经网络的短期风速预测实现方案
  • 图中最短环bfs
  • 【毕业设计】基于springboot的运动用品商城系统(源码+文档+远程调试,全bao定制等)
  • 基于python的小型民营加油站管理系统vue3
  • 计算机辅助V型往复式活塞压缩机设计
  • 亚马逊广告越投越亏:问题不在ACOS,而在“假归因”和“错利润”
  • 基于plc的药片自动装瓶系统设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 收藏!大模型应用开发入行指南:小白/程序员必看的风口赛道攻略
  • 如果你有电脑,这个寒假请一定要死磕这三个黑客技术!零基础学黑客技术看这一篇就够了!
  • Spring Boot 工厂 + 策略模式,3 步统一多端登录
  • 做同事排班优化程序,输入团队人数,休假需求,工作岗位要求,自动生成月度排班表,兼顾公平性和工作需求,支持手动调整。
  • 2025年转行进入网络安全领域薪资及工作安排与前景如何
  • 使用 UI Automator 改进 Espresso Android UI 测试
  • T6113卧式镗床
  • Win神仙软件来了!内置400+工具神器,全网最狠工具箱,且全部为绿色版本 Centrack在线工具包
  • Z30130X31型钻床
  • 农业数据采集CKEDITOR粘贴截图如何自动存入PHP?
  • 导师严选2026 AI论文软件TOP10:继续教育必备测评
  • 学霸同款10个AI论文软件,自考毕业轻松搞定!
  • 基于S7 - 300 PLC和Wincc的三路抢答器控制系统实现
  • 2026年最热门的十大网络安全职位
  • 从 Transformer 到 Mamba:YOLOv8 中 VSSBlock(MambaLayer)的核心原理解析与结构演进
  • YOLOv13 新思路解析:SFHF + 傅里叶频域特征融合实现 mAP 提升 7.66%
  • 大模型微调技术全攻略:从基础到前沿,一篇掌握(建议收藏)
  • 8645378