2026/3/9 13:43:39
网站建设
项目流程
查询企业的网站有哪些,网络培训注册会计师,做一个国外网站,小程序后端怎么搭建RustFS Docker 安装指南 (SNSD)
本篇博文博主将详细介绍如何使用 Docker 在单节点单磁盘 (Single Node Single Disk, SNSD) 模式下安装和部署 RustFS。
概述:
RustFS 定义: 一个高性能、100% S3 兼容的开源分布式对象存储系统。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_DOMAINSexample.com设置服务器域名。RUSTFS_ACCESS_KEY: 例如-e RUSTFS_ACCESS_KEYrustfsadmin设置 S3 API 访问密钥。RUSTFS_SECRET_KEY: 例如-e RUSTFS_SECRET_KEYrustfsadmin设置 S3 API 私有密钥。RUSTFS_CONSOLE_ENABLE: 例如-e RUSTFS_CONSOLE_ENABLEtrue启用内置 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_KEYrustfsadmin\-eRUSTFS_SECRET_KEYrustfsadmin\-eRUSTFS_CONSOLE_ENABLEtrue\-eRUSTFS_SERVER_DOMAINSexample.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_ENABLEtrue\rustfs/rustfs:latest\--console-enable\/data自定义认证密钥示例:dockerrun -d\-p9000:9000\-p9001:9001\-v /mnt/data:/data\-eRUSTFS_ACCESS_KEYrustfsadmin\-eRUSTFS_SECRET_KEYrustfsadmin\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 gitgithub.com:rustfs/rustfs.gitcdrustfs# 进入克隆的仓库目录启动包含可观测性的全套服务:dockercompose --profile observability up -d这将根据docker-compose.yml中定义的observabilityprofile 启动 RustFS 以及相关的监控追踪服务。仅启动 RustFS 服务:如果你不想部署 Grafana、Prometheus 等可观测性服务只想运行 RustFS 本身编辑docker-compose.yml文件找到与rustfs-server服务相关的depends_on部分通常是指向otel-collector的依赖将其注释掉在行首加#。运行以下命令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_ENABLEtrue或--console-enable)则可以通过浏览器访问http://YOUR_HOST_IP:9000来打开 Web 界面。使用默认的用户名和密码登录通常是rustfsadmin/rustfsadmin具体取决于你的配置。5. 其他建议 (Other Recommendations)生产环境建议:使用多节点部署架构以提高可用性和性能。启用TLS加密通信以保障数据传输安全。配置日志轮转策略防止日志文件无限增长。设立定期备份策略保护元数据和对象数据。配置监控和告警可利用 Docker Compose 中提供的可观测性栈。存储建议:使用本地 SSD 或 NVMe 存储以获得最佳 I/O 性能。避免使用网络文件系统 (NFS)因为其延迟和一致性问题可能影响性能和稳定性。确保 RustFS 使用的存储目录具有独占访问权避免与其他应用共享同一物理路径。sourcehttps://docs.rustfs.com/installation/docker/