Skip to content

Commit ec6fa0c

Browse files
authored
Merge pull request #2 from rustfs/fix/install
improve code for docker install
1 parent 3c725ed commit ec6fa0c

File tree

2 files changed

+159
-68
lines changed

2 files changed

+159
-68
lines changed

docs/zh/installation/docker.md

Lines changed: 122 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ RustFS 是一款高性能、100% 兼容 S3 的开源分布式对象存储系统
2222
* 本地路径 `/mnt/rustfs/data`(或自定义路径)用于挂载对象数据
2323
2. **网络与防火墙**
2424

25-
* 确保宿主机 7000 端口对外开放(或自定义端口一致)
25+
* 确保宿主机 9000 端口对外开放(或自定义端口一致)
2626
3. **配置文件准备**
2727

2828
* 在宿主机 `/etc/rustfs/config.toml` 中,定义监听端口、管理员账号、数据路径等(详见第四节)
@@ -34,12 +34,12 @@ RustFS 是一款高性能、100% 兼容 S3 的开源分布式对象存储系统
3434
使用官方 Ubuntu 基础镜像,快束拉取 RustFS 官方镜像:
3535

3636
```bash
37-
podman pull quay.io/rustfs/rustfs
37+
docker pull quay.io/rustfs/rustfs
3838
```
3939

4040
或者使用 docker 拉取:
4141
```bash
42-
podman pull docker://rustfs/rustfs
42+
docker pull docker://rustfs/rustfs
4343

4444
```
4545

@@ -53,11 +53,11 @@ podman pull docker://rustfs/rustfs
5353
RUSTFS_ROOT_USER=rustfsadmin
5454
RUSTFS_ROOT_PASSWORD=rustfsadmin
5555
RUSTFS_VOLUMES="/data/rustfs{0...3}"
56-
RUSTFS_ADDRESS=":7000"
56+
RUSTFS_ADDRESS=":9000"
5757
#RUSTFS_SERVER_DOMAINS="play.rustfs.com:7000"
5858
RUSTFS_CONSOLE_ENABLE=true
59-
RUSTFS_CONSOLE_ADDRESS=":7001"
60-
RUSTFS_OBS_CONFIG="/etc/default/obs.toml"
59+
RUSTFS_CONSOLE_ADDRESS=":9001"
60+
RUSTFS_OBS_ENDPOINT=""
6161
RUSTFS_TLS_PATH="/opt/tls"
6262
```
6363

@@ -70,24 +70,128 @@ RUSTFS_TLS_PATH="/opt/tls"
7070
RustFS SNSD Docker 运行方式,结合上述镜像与配置,执行:
7171

7272
```bash
73-
podman run -d \
74-
--name rustfs_local \
75-
-p 7000:7000 \
76-
-v /mnt/rustfs/data:/data \
77-
-v /etc/rustfs/rustfs:/config/rustfs:ro \
78-
rustfs/rustfs:latest
73+
docker run -d \
74+
--name rustfs_local \
75+
-p 9000:9000 \
76+
-p 9001:9001 \
77+
-v /mnt/rustfs/data:/data \
78+
rustfs/rustfs:latest \
79+
/data
7980
```
8081

8182
各参数说明:
8283

83-
* `-p 7000:7000`:映射宿主机 7000 端口到容器
84+
* `-p 9000:9000`:映射宿主机 9000 端口到容器
85+
* `-p 9001:9001`:映射宿主机 9001 端口到容器,用于 console 端访问
8486
* `-v /mnt/rustfs/data:/data`:挂载数据卷
85-
* `-v /etc/rustfs/rustfs:/config/rustfs:ro`:挂载配置文件
8687
* `--name rustfs_local`:容器自定义名称
87-
* `-d` 后台运行
88+
* `-d`:后台运行
8889

8990
---
9091

92+
### 完整参数配置示例
93+
94+
```bash
95+
docker run -d \
96+
--name rustfs_container \
97+
-p 9000:9000 \
98+
-p 9001:9001 \
99+
-v /mnt/rustfs/data:/data \
100+
-e RUSTFS_ACCESS_KEY=myaccesskey \
101+
-e RUSTFS_SECRET_KEY=mysecretkey \
102+
-e RUSTFS_CONSOLE_ENABLE=true \
103+
-e RUSTFS_SERVER_DOMAINS=example.com \
104+
rustfs/rustfs:latest \
105+
./target/debug/rustfs \
106+
--address :9000 \
107+
--console-address :9001 \
108+
--console-enable \
109+
--server-domains example.com \
110+
--access-key myaccesskey \
111+
--secret-key mysecretkey \
112+
/data
113+
```
114+
115+
### 参数说明与对应方法
116+
117+
1. **环境变量方式** (推荐):
118+
```bash
119+
-e RUSTFS_ADDRESS=:9000 \
120+
-e RUSTFS_SERVER_DOMAINS=example.com \
121+
-e RUSTFS_ACCESS_KEY=myaccesskey \
122+
-e RUSTFS_SECRET_KEY=mysecretkey \
123+
-e RUSTFS_CONSOLE_ENABLE=true \
124+
-e RUSTFS_CONSOLE_ADDRESS=:9001 \
125+
```
126+
127+
2. **命令行参数方式**:
128+
```
129+
--address :9000 \
130+
--server-domains example.com \
131+
--access-key myaccesskey \
132+
--secret-key mysecretkey \
133+
--console-enable \
134+
--console-address :9001 \
135+
```
136+
137+
3. **必需参数**:
138+
- `<VOLUMES>`: 在命令最后指定,如 `/data`
139+
140+
### 常用配置组合
141+
142+
1. **基础配置**:
143+
```bash
144+
docker run -d \
145+
-p 9000:9000 \
146+
-v /mnt/data:/data \
147+
rustfs/rustfs:latest \
148+
/data
149+
```
150+
151+
2. **启用控制台**:
152+
```bash
153+
docker run -d \
154+
-p 9000:9000 \
155+
-p 9001:9001 \
156+
-v /mnt/data:/data \
157+
-e RUSTFS_CONSOLE_ENABLE=true \
158+
rustfs/rustfs:latest \
159+
./target/debug/rustfs \
160+
--console-enable \
161+
/data
162+
```
163+
164+
3. **自定义认证密钥**:
165+
```bash
166+
docker run -d \
167+
-p 9000:9000 \
168+
-v /mnt/data:/data \
169+
-e RUSTFS_ACCESS_KEY=admin123 \
170+
-e RUSTFS_SECRET_KEY=secret123 \
171+
rustfs/rustfs:latest \
172+
./target/debug/rustfs \
173+
--access-key admin123 \
174+
--secret-key secret123 \
175+
/data
176+
```
177+
178+
### 注意事项
179+
180+
1. 端口映射要对应:
181+
- 服务端口默认 9000 (`-p 9000:9000`)
182+
- 控制台端口默认 9001 (`-p 9001:9001`)
183+
184+
2. 数据卷要持久化:
185+
- `-v /host/path:/container/path`
186+
187+
3. 环境变量和命令行参数可以混合使用,但命令行参数优先级更高
188+
189+
4. 如果使用 TLS,需要额外挂载证书路径:
190+
```bash
191+
-v /path/to/certs:/certs \
192+
-e RUSTFS_TLS_PATH=/certs \
193+
```
194+
91195
## 五、验证与访问
92196

93197
1. **查看容器状态与日志:**
@@ -96,14 +200,14 @@ podman run -d \
96200
docker logs rustfs_local
97201
```
98202

99-
日志应显示服务启动成功,并监听 7000 端口。
203+
日志应显示服务启动成功,并监听 9000 端口。
100204

101205
2. **测试 S3 API:**
102206

103207
使用 `mc` 或其他 S3 客户端:
104208

105209
```bash
106-
mc alias set rustfs http://localhost:7000 rustfsadmin ChangeMe123!
210+
mc alias set rustfs http://localhost:9000 rustfsadmin ChangeMe123!
107211
mc mb rustfs/mybucket
108212
mc ls rustfs
109213
```
@@ -121,7 +225,7 @@ podman run -d \
121225

122226
2. 存储建议:
123227
- 使用本地 SSD/NVMe 存储
124-
- 避免使用网络文件系统(NFS)
228+
- 避免使用网络文件系统 (NFS)
125229
- 保证存储目录独占访问
126230

127231
---

docs/zh/installation/linux.md

Lines changed: 37 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@ description: "使用 Linux 操作系统安装 RustFS 的快速指导"
66
# Linux 安装 RustFS
77

88

9-
## 一、 安装前必读
9+
## 一、安装前必读
1010

1111
本页面包含了 RustFS 的三种安装模式的全部文档和说明。其中,多机多盘的模式包含了企业级可用的性能、安全性和扩展性。并且,提供了生产工作负载需要的架构图。
1212
请装前请阅读,我们的启动模式与检查清单,如下:
1313

14-
1. 启动模式, 前明确您的 Linux 启动模式;
14+
1. 启动模式,前明确您的 Linux 启动模式;
1515

16-
2. 检查清单, 检查各项指标是否符合生产指导特征,若不需要生产标准可不阅读此指导;
16+
2. 检查清单,检查各项指标是否符合生产指导特征,若不需要生产标准可不阅读此指导;
1717

1818

19-
## 二、 先决条件
19+
## 二、先决条件
2020

2121
1. 操作系统版本;
2222

@@ -113,7 +113,7 @@ timedatectl status
113113

114114
RustFS 启动,我们建议您配置一个专门的无登录权限的用户进行启动 RustFS 的服务。在 rustfs.service 启动控制脚本中,默认的用户和用户组是 `rustfs-user``rustfs-user`
115115

116-
您可以使用 groupadd 和 useradd 命令创建用户和组. 以下示例创建用户、组并设置权限以访问 RustFS 指定的数据目录。
116+
您可以使用 groupadd 和 useradd 命令创建用户和组以下示例创建用户、组并设置权限以访问 RustFS 指定的数据目录。
117117

118118
## 四、下载安装包
119119

@@ -137,11 +137,11 @@ sudo tee /etc/default/rustfs <<EOF
137137
RUSTFS_ROOT_USER=rustfsadmin
138138
RUSTFS_ROOT_PASSWORD=rustfsadmin
139139
RUSTFS_VOLUMES="/data/rustfs{0...3}"
140-
RUSTFS_ADDRESS=":7000"
141-
#RUSTFS_SERVER_DOMAINS="play.rustfs.com:7000"
140+
RUSTFS_ADDRESS=":9000"
141+
#RUSTFS_SERVER_DOMAINS="play.rustfs.com:9000"
142142
RUSTFS_CONSOLE_ENABLE=true
143-
RUSTFS_CONSOLE_ADDRESS=":7001"
144-
RUSTFS_OBS_CONFIG="/etc/default/obs.toml"
143+
RUSTFS_CONSOLE_ADDRESS=":9001"
144+
RUSTFS_OBS_ENDPOINT=""
145145
RUSTFS_TLS_PATH="/opt/tls"
146146
EOF
147147
```
@@ -154,43 +154,26 @@ sudo chmod -R 750 /data/rustfs* /var/logs/rustfs
154154

155155
### 六、配置可观测性系统
156156
1. 创建观测配置文件
157-
```bash
158-
sudo tee /etc/default/obs.toml <<EOF
159-
[observability]
160-
endpoint = "http://localhost:4317"
161-
use_stdout = false
162-
sample_ratio = 2.0
163-
meter_interval = 30
164-
service_name = "rustfs"
165-
service_version = "0.1.0"
166-
environments = "production"
167-
logger_level = "debug"
168-
local_logging_enabled = true
169-
170-
[sinks]
171-
[sinks.kafka]
172-
enabled = false
173-
bootstrap_servers = "localhost:9092"
174-
topic = "logs"
175-
batch_size = 100
176-
batch_timeout_ms = 1000
177-
178-
[sinks.webhook]
179-
enabled = false
180-
endpoint = "http://localhost:8080/webhook"
181-
auth_token = ""
182-
batch_size = 100
183-
batch_timeout_ms = 1000
184-
185-
[sinks.file]
186-
enabled = true
187-
path = "/var/logs/rustfs/app.log"
188-
batch_size = 10
189-
batch_timeout_ms = 1000
190-
191-
[logger]
192-
queue_capacity = 10
193-
EOF
157+
```
158+
export RUSTFS_OBS_ENDPOINT=http://localhost:4317 # OpenTelemetry Collector 的地址
159+
export RUSTFS_OBS_USE_STDOUT=false # 是否使用标准输出
160+
export RUSTFS_OBS_SAMPLE_RATIO=2.0 # 采样率,0.0-1.0之间,0.0表示不采样,1.0表示全部采样
161+
export RUSTFS_OBS_METER_INTERVAL=1 # 采样间隔,单位为秒
162+
export RUSTFS_OBS_SERVICE_NAME=rustfs # 服务名称
163+
export RUSTFS_OBS_SERVICE_VERSION=0.1.0 # 服务版本
164+
export RUSTFS_OBS_ENVIRONMENT=develop # 环境名称
165+
export RUSTFS_OBS_LOGGER_LEVEL=debug # 日志级别,支持 trace, debug, info, warn, error
166+
export RUSTFS_OBS_LOCAL_LOGGING_ENABLED=true # 是否启用本地日志记录
167+
# 日志目录 当 `RUSTFS_OBS_ENDPOINT` 值为空时,默认执行下面的日志处理规则
168+
export RUSTFS_OBS_LOG_DIRECTORY="$current_dir/deploy/logs" # Log directory
169+
export RUSTFS_OBS_LOG_ROTATION_TIME="minute" # Log rotation time unit, can be "second", "minute", "hour", "day"
170+
export RUSTFS_OBS_LOG_ROTATION_SIZE_MB=1 # Log rotation size in MB
171+
172+
# 配置日志记录
173+
export RUSTFS_SINKS_FILE_PATH="$current_dir/deploy/logs/rustfs.log"
174+
export RUSTFS_SINKS_FILE_BUFFER_SIZE=12
175+
export RUSTFS_SINKS_FILE_FLUSH_INTERVAL_MS=1000
176+
export RUSTFS_SINKS_FILE_FLUSH_THRESHOLD=100
194177
```
195178

196179
2. 设置日志轮转
@@ -229,7 +212,7 @@ Group=root
229212
230213
WorkingDirectory=/usr/local
231214
EnvironmentFile=-/etc/default/rustfs
232-
ExecStart=/usr/local/bin/rustfs \$RUSTFS_VOLUMES \$RUSTFS_OPTS
215+
ExecStart=/usr/local/bin/rustfs \$RUSTFS_VOLUMES
233216
234217
LimitNOFILE=1048576
235218
LimitNPROC=32768
@@ -256,6 +239,10 @@ ProtectControlGroups=true
256239
RestrictSUIDSGID=true
257240
RestrictRealtime=true
258241
242+
# service log configuration
243+
StandardOutput=append:/var/logs/rustfs/rustfs.log
244+
StandardError=append:/var/logs/rustfs/rustfs-err.log
245+
259246
[Install]
260247
WantedBy=multi-user.target
261248
EOF
@@ -279,12 +266,12 @@ systemctl status rustfs
279266

280267
3. 检查服务端口
281268
```bash
282-
ss -tunlp | grep -E '7000|7001'
269+
ss -tunlp | grep -E '9000|9001'
283270
```
284271

285272
4. 验证控制台访问
286273
```bash
287-
curl -u rustfsadmin:rustfsadmin http://localhost:7001/metrics
274+
curl -u rustfsadmin:rustfsadmin http://localhost:9001/metrics
288275
```
289276

290277
5. 查看日志文件
@@ -297,7 +284,7 @@ tail -f /var/logs/rustfs/app.log
297284
curl -X PUT -u rustfsadmin:rustfsadmin \
298285
-H "Content-Type: application/octet-stream" \
299286
--data-binary @testfile \
300-
http://localhost:7000/bucket1/object1
287+
http://localhost:9000/bucket1/object1
301288
```
302289

303290

0 commit comments

Comments
 (0)