1
1
---
2
- title : " Docker 安装 RustFS"
3
- description : " RustFS Docker 部署。 "
2
+ title : " Instalar RustFS com Docker "
3
+ description : " Implantação do RustFS via Docker "
4
4
---
5
5
6
- # Docker 安装 RustFS
7
-
8
-
6
+ # Instalar RustFS com Docker
9
7
8
+ RustFS é um armazenamento de objetos distribuído de alto desempenho, 100% compatível com S3. No modo SNSD (single node, single disk), não há redundância adicional (sem EC), adequado para testes locais e cenários pequenos.
9
+ Este guia usa o binário oficial para Linux como base e empacota num contêiner via Dockerfile, configurando volumes e variáveis de ambiente para iniciar o serviço.
10
10
11
+ ---
11
12
12
- RustFS 是一款高性能、100% 兼容 S3 的开源分布式对象存储系统。单节点单盘(SNSD)部署模式下,后端采用零纠删校验,不提供额外的数据冗余,适合本地测试与小规模场景。
13
- 本文以 RustFS 官方 Linux 二进制包为基础,通过自定义 Dockerfile ,将 RustFS 及其运行时环境打包进容器,并配置数据卷与环境变量,即可一键启动服务。
13
+ ## 1. Pré‑requisitos
14
14
15
- ---
15
+ 1 ) Requisitos da máquina
16
16
17
- ## 一、前置准备
17
+ - Docker ≥ 20.10 instalado e funcional
18
+ - Diretório local ` /mnt/rustfs/data ` (ou personalizado) para dados
18
19
19
- 1 . ** 主机要求 **
20
+ 2 ) Rede e firewall
20
21
21
- * 已安装 Docker(≥ 20.10)并能正常拉取镜像与运行容器
22
- * 本地路径 ` /mnt/rustfs/data ` (或自定义路径)用于挂载对象数据
23
- 2 . ** 网络与防火墙**
22
+ - Garanta a abertura da porta 9000 (ou porta escolhida)
24
23
25
- * 确保宿主机 9000 端口对外开放(或自定义端口一致)
26
- 3 . ** 配置文件准备**
24
+ 3 ) Ficheiro de configuração
27
25
28
- * 在宿主机 ` /etc/rustfs/config.toml ` 中,定义监听端口、管理员账号、数据路径等(详见第四节)
26
+ - Em ` /etc/rustfs/config.toml ` , defina porta, credenciais admin, diretórios de dados, etc.
29
27
30
28
---
31
29
32
- ## 二、快速拉取 RustFS 官方镜像
33
-
34
- 使用官方 Ubuntu 基础镜像,快速拉取 RustFS 官方镜像:
30
+ ## 2. Obter a imagem oficial
35
31
32
+ Usando base Ubuntu, puxe a imagem oficial do RustFS:
36
33
37
34
``` bash
38
35
docker pull rustfs/rustfs
39
-
40
36
```
41
37
42
38
---
43
39
44
- ## 三、编写环境配置
40
+ ## 3. Configuração do ambiente
45
41
46
- 在宿主机创建配置文件 ` /etc/rustfs/config.toml ` ,示例内容:
42
+ Crie ` /etc/rustfs/config.toml ` no host. Exemplo de variáveis:
47
43
48
44
``` bash
49
45
RUSTFS_ACCESS_KEY=rustfsadmin
@@ -56,33 +52,33 @@ RUSTFS_OBS_ENDPOINT=""
56
52
RUSTFS_TLS_PATH=" /opt/tls"
57
53
```
58
54
59
- > ** 说明: ** 配置项格式及默认值请参见官方 Linux 安装文档。
55
+ > Nota: veja a documentação de instalação Linux para defaults e formatos.
60
56
61
57
---
62
58
63
- ## 四、运行 RustFS 容器
59
+ ## 4. Executar o contêiner RustFS
64
60
65
- RustFS SNSD Docker 运行方式,结合上述镜像与配置,执行:
61
+ Execução típica do SNSD com a imagem e configuração acima:
66
62
67
63
``` bash
68
- docker run -d \
64
+ docker run -d \
69
65
--name rustfs_local \
70
66
-p 9000:9000 \
71
67
-v /mnt/rustfs/data:/data \
72
68
rustfs/rustfs:latest \
73
69
/data
74
70
```
75
71
76
- 各参数说明:
72
+ Parâmetros:
77
73
78
- * ` -p 9000:9000 ` :映射宿主机 9000 端口到容器
79
- * ` -v /mnt/rustfs/data:/data ` :挂载数据卷
80
- * ` --name rustfs_local ` :容器自定义名称
81
- * ` -d ` :后台运行
74
+ - ` -p 9000:9000 ` : mapeia porta 9000
75
+ - ` -v /mnt/rustfs/data:/data ` : monta volume de dados
76
+ - ` --name rustfs_local ` : nome do contêiner
77
+ - ` -d ` : em background
82
78
83
79
---
84
80
85
- ### 完整参数配置示例
81
+ ### Exemplo com parâmetros completos
86
82
87
83
``` bash
88
84
docker run -d \
@@ -102,121 +98,100 @@ docker run -d \
102
98
/data
103
99
```
104
100
105
- ### 参数说明与对应方法
106
-
107
- 1 . ** 环境变量方式** (推荐):
108
- ``` bash
109
- -e RUSTFS_ADDRESS=:9000 \
110
- -e RUSTFS_SERVER_DOMAINS=example.com \
111
- -e RUSTFS_ACCESS_KEY=rustfsadmin \
112
- -e RUSTFS_SECRET_KEY=rustfsadmin \
113
- -e RUSTFS_CONSOLE_ENABLE=true \
114
- ```
115
-
116
- 2 . ** 命令行参数方式** :
117
- ```
118
- --address :9000 \
119
- --server-domains example.com \
120
- --access-key rustfsadmin \
121
- --secret-key rustfsadmin \
122
- --console-enable \
123
- ```
124
-
125
- 3 . ** 必需参数** :
126
- - ` <VOLUMES> ` : 在命令最后指定,如 ` /data `
127
-
128
- ### 常用配置组合
129
-
130
- 1 . ** 基础配置** :
131
- ``` bash
132
- docker run -d \
133
- -p 9000:9000 \
134
- -v /mnt/data:/data \
135
- rustfs/rustfs:latest \
136
- /data
137
- ```
138
-
139
- 2 . ** 启用控制台** :
140
- ``` bash
141
- docker run -d \
142
- -p 9000:9000 \
143
- -v /mnt/data:/data \
144
- -e RUSTFS_CONSOLE_ENABLE=true \
145
- rustfs/rustfs:latest \
146
- ./target/debug/rustfs \
147
- --console-enable \
148
- /data
149
- ```
150
-
151
- 3 . ** 自定义认证密钥** :
152
- ``` bash
153
- docker run -d \
154
- -p 9000:9000 \
155
- -v /mnt/data:/data \
156
- -e RUSTFS_ACCESS_KEY=rustfsadmin \
157
- -e RUSTFS_SECRET_KEY=rustfsadmin \
158
- rustfs/rustfs:latest \
159
- ./target/debug/rustfs \
160
- --access-key rustfsadmin \
161
- --secret-key rustfsadmin \
162
- /data
163
- ```
164
-
165
- ### 注意事项
166
-
167
- 1 . 端口映射要对应:
168
- - 服务端口默认 9000 (` -p 9000:9000 ` )
169
-
170
- 2 . 数据卷要持久化:
171
- - ` -v /host/path:/container/path `
172
-
173
- 3 . 环境变量和命令行参数可以混合使用,但命令行参数优先级更高
174
-
175
- 4 . 如果使用 TLS,需要额外挂载证书路径:
176
- ``` bash
177
- -v /path/to/certs:/certs \
178
- -e RUSTFS_TLS_PATH=/certs \
179
- ```
180
-
181
- ## 五、验证与访问
182
-
183
- 1 . ** 查看容器状态与日志:**
184
-
185
- ``` bash
186
- docker logs rustfs_local
187
- ```
188
-
189
- 日志应显示服务启动成功,并监听 9000 端口。
190
-
191
- 2 . ** 测试 S3 API:**
192
-
193
- 使用 ` mc ` 或其他 S3 客户端:
194
-
195
- ``` bash
196
- mc alias set rustfs http://localhost:9000 rustfsadmin ChangeMe123!
197
- mc mb rustfs/mybucket
198
- mc ls rustfs
199
- ```
200
-
201
- 如能成功创建并列举 bucket,则部署生效。
202
-
203
-
204
- ## 六、其他建议
205
-
206
- 1 . 生产环境建议:
207
- - 使用多节点部署架构
208
- - 启用 TLS 加密通信
209
- - 配置日志轮转策略
210
- - 设置定期备份策略
211
-
212
- 2 . 存储建议:
213
- - 使用本地 SSD/NVMe 存储
214
- - 避免使用网络文件系统 (NFS)
215
- - 保证存储目录独占访问
101
+ ### Métodos de configuração
102
+
103
+ 1 ) Variáveis de ambiente (recomendado):
104
+ ``` bash
105
+ -e RUSTFS_ADDRESS=:9000 \
106
+ -e RUSTFS_SERVER_DOMAINS=example.com \
107
+ -e RUSTFS_ACCESS_KEY=rustfsadmin \
108
+ -e RUSTFS_SECRET_KEY=rustfsadmin \
109
+ -e RUSTFS_CONSOLE_ENABLE=true \
110
+ ```
111
+
112
+ 2 ) Parâmetros de linha de comando:
113
+ ```
114
+ --address :9000 \
115
+ --server-domains example.com \
116
+ --access-key rustfsadmin \
117
+ --secret-key rustfsadmin \
118
+ --console-enable \
119
+ ```
120
+
121
+ 3 ) Parâmetros obrigatórios:
122
+ - ` <VOLUMES> ` : no fim do comando, ex.: ` /data `
123
+
124
+ ### Combinações comuns
125
+
126
+ 1 ) Configuração básica:
127
+ ``` bash
128
+ docker run -d \
129
+ -p 9000:9000 \
130
+ -v /mnt/data:/data \
131
+ rustfs/rustfs:latest \
132
+ /data
133
+ ```
134
+
135
+ 2 ) Ativar console:
136
+ ``` bash
137
+ docker run -d \
138
+ -p 9000:9000 \
139
+ -v /mnt/data:/data \
140
+ -e RUSTFS_CONSOLE_ENABLE=true \
141
+ rustfs/rustfs:latest \
142
+ ./target/debug/rustfs \
143
+ --console-enable \
144
+ /data
145
+ ```
146
+
147
+ 3 ) Chaves de autenticação personalizadas:
148
+ ``` bash
149
+ docker run -d \
150
+ -p 9000:9000 \
151
+ -v /mnt/data:/data \
152
+ -e RUSTFS_ACCESS_KEY=rustfsadmin \
153
+ -e RUSTFS_SECRET_KEY=rustfsadmin \
154
+ rustfs/rustfs:latest \
155
+ ./target/debug/rustfs \
156
+ --access-key rustfsadmin \
157
+ --secret-key rustfsadmin \
158
+ /data
159
+ ```
160
+
161
+ ### Notas
162
+
163
+ 1 ) Portas mapeadas corretamente (padrão 9000)
164
+ 2 ) Volumes persistentes ` -v /host:/container `
165
+ 3 ) Pode misturar env + CLI, mas CLI tem prioridade
166
+ 4 ) Para TLS, monte certificados:
167
+ ``` bash
168
+ -v /path/to/certs:/certs \
169
+ -e RUSTFS_TLS_PATH=/certs \
170
+ ```
171
+
172
+ ## 5. Verificação e acesso
173
+
174
+ 1 ) Estado e logs do contêiner:
175
+ ``` bash
176
+ docker logs rustfs_local
177
+ ```
178
+ Deve indicar sucesso e escuta na porta 9000.
179
+
180
+ 2 ) Testar S3 API (ex.: ` mc ` ):
181
+ ``` bash
182
+ mc alias set rustfs http://localhost:9000 rustfsadmin ChangeMe123!
183
+ mc mb rustfs/mybucket
184
+ mc ls rustfs
185
+ ```
186
+ Se criar e listar buckets, a implantação está ok.
187
+
188
+ ## 6. Recomendações
189
+
190
+ - Produção: multi‑nó, TLS, rotação de logs, backups periódicos
191
+ - Armazenamento: SSD/NVMe local, evitar NFS, acesso exclusivo ao diretório de dados
216
192
217
193
---
218
194
219
- ## 小结
195
+ ## Resumo
220
196
221
- 本文结合 RustFS 单节点单盘容器化最佳实践,详细演示了如何通过 Docker 自行构建 RustFS 镜像并部署 SNSD 环境。
222
- 该方案易于快速启动与试验,后续可在 Kubernetes、Swarm 等平台上采用同样思路扩展为多节点多盘生产级集群。
197
+ Este guia demonstrou como empacotar e executar o RustFS em modo SNSD via Docker para arranque rápido. Posteriormente, pode evoluir para MNMD em plataformas como Kubernetes/Swarm.
0 commit comments