存储与卷
为容器配置持久化存储
存储与卷
容器默认是临时的——容器重启时数据会丢失。使用卷和挂载在部署之间持久化数据。
概述
Senate 支持多种存储类型:
| 类型 | 描述 | 用例 |
|---|---|---|
| Volume | Docker 管理的存储 | 数据库、文件上传 |
| Bind Mount | 主机目录挂载 | 开发、共享文件 |
| File Mount | 单文件注入 | 配置文件、证书 |
Docker 服务
对于 Docker 服务,在 Storage 标签页配置存储。
添加挂载
- 导航到你的服务
- 进入 Storage 标签页
- 点击 Add Mount
- 配置挂载:

Volume 挂载
Docker 管理的命名卷:
| 字段 | 描述 | 示例 |
|---|---|---|
| Type | 选择 "Volume" | volume |
| Source | 卷名称 | myapp-data |
| Destination | 容器路径 | /app/data |
| Read Only | 可选只读模式 | false |
# 创建名为 "myapp-data" 的卷,挂载到 /app/data
Type: volume
Source: myapp-data
Destination: /app/data如果卷不存在会自动创建。即使容器被删除,数据也会保留。
Bind Mount
将主机目录挂载到容器:
| 字段 | 描述 | 示例 |
|---|---|---|
| Type | 选择 "Bind" | bind |
| Source | 主机路径 | /host/data |
| Destination | 容器路径 | /app/data |
| Read Only | 可选 | false |
# 将主机目录 /host/data 挂载到容器 /app/data
Type: bind
Source: /host/data
Destination: /app/dataBind mount 会将主机文件系统暴露给容器。在生产环境中谨慎使用。
File Mount
向容器注入单个文件:
| 字段 | 描述 | 示例 |
|---|---|---|
| Type | 选择 "File" | file |
| Destination | 容器文件路径 | /app/config.json |
| Content | 文件内容 | {"key": "value"} |
# 创建 /app/config.json 并写入指定内容
Type: file
Destination: /app/config.json
Content: {"debug": false, "port": 3000}用例:
- 配置文件
- SSL 证书
- 自定义脚本
- Nginx 配置
Compose 服务
对于 Compose 服务,存储在 docker-compose.yml 中定义:
services:
app:
volumes:
- app-data:/app/data # 命名卷
- ./config:/app/config:ro # Bind mount(只读)
volumes:
app-data:Storage 标签页以只读模式显示 Compose 服务的当前挂载。
查看容器挂载
Storage 标签页显示:
- Configured Mounts:在 Senate 中定义的挂载(Docker 服务)
- Runtime Mounts:运行容器上的实际挂载
每个挂载显示:
- 类型(volume、bind、file)
- 源位置
- 目标路径
- 读写模式
卷管理
磁盘使用
在 Storage 标签页查看卷磁盘使用情况:
- 总大小
- 已用空间
- 可用空间
卷位置
卷存储在主机的:
/var/lib/docker/volumes/{volume-name}/_data最佳实践
数据库存储
数据库始终使用卷:
# PostgreSQL
Source: postgres-data
Destination: /var/lib/postgresql/data
# MySQL
Source: mysql-data
Destination: /var/lib/mysql
# MongoDB
Source: mongo-data
Destination: /data/db文件上传
用于用户上传的文件:
Source: uploads
Destination: /app/uploads备份
实施备份策略:
- 使用卷快照(如果主机支持)
- 运行具有卷访问权限的备份容器
- 复制到外部存储(S3 等)
只读挂载
对以下内容使用只读挂载:
- 配置文件
- 静态资源
- 共享库
Source: config-files
Destination: /app/config
Read Only: true相关内容
- PostgreSQL 配方 - 数据库设置
- Redis 配方 - 缓存存储
- 服务 - 服务配置