Tmpfs 临时存储
Tmpfs 将数据存储在内存中,容器停止后数据丢失,适合敏感数据和临时文件。
基本用法
Bash
# 使用 tmpfs 挂载
docker run -d \
--name my-app \
--tmpfs /tmp \
my-app
# 指定大小
docker run -d \
--name my-app \
--tmpfs /tmp:size=100m \
my-app
Tmpfs 挂载仅存在于内存,容器停止后数据丢弃。
Compose 配置
YAML
version: '3.8'
services:
app:
image: my-app
tmpfs:
- /tmp
- /var/run
- /tmp/cache:size=50m
# 或使用长语法
volumes:
- type: tmpfs
target: /tmp
tmpfs:
size: 104857600 # 100MB
使用场景
敏感数据
YAML
services:
app:
image: my-app
tmpfs:
- /secrets:size=10m
# 敏感数据写入 /secrets
# 容器停止后自动清除,不留痕迹
缓存目录
YAML
services:
web:
image: nginx
tmpfs:
- /var/cache/nginx:size=50m
# 缓存存在内存中,提升性能
会话存储
YAML
services:
app:
image: my-app
tmpfs:
- /var/lib/app/sessions:size=20m
# 会话数据在内存中,容器重启后丢失
# 适合无状态应用
对比其他挂载
| 挂载类型 | 存储位置 | 持久化 | 性能 | 适用场景 |
|---|---|---|---|---|
| bind mount | 宿主机磁盘 | ✅ | 中 | 配置文件 |
| volume | Docker 管理 | ✅ | 高 | 数据持久化 |
| tmpfs | 内存 | ❌ | 最高 | 敏感/临时数据 |
限制
YAML
# tmpfs 仅在 Linux 支持
# macOS/Windows Docker Desktop 不支持
# 大小限制
services:
app:
tmpfs:
- /tmp:size=100m # 必须指定大小,防止耗尽内存
Tmpfs 使用主机内存,必须指定大小限制,避免耗尽内存。
与 --mount 配合
Bash
# 使用 --mount 挂载 tmpfs
docker run -d \
--name my-app \
--mount type=tmpfs,destination=/tmp,tmpfs-size=104857600 \
my-app
查看 tmpfs
Bash
# 查看容器挂载信息
docker inspect my-app | grep -A 10 "Tmpfs"
# 输出
"Tmpfs": {
"/tmp": "104857600"
}
安全注意
YAML
# 敏感数据使用 tmpfs
services:
db:
image: postgres
tmpfs:
- /var/run/postgresql:size=10m
# 数据库运行时文件在内存中
# 容器停止后自动清除
敏感数据使用 tmpfs,容器停止后自动清除,不留痕迹。
要点总结
- Tmpfs 将数据存储在内存中,容器停止后数据丢失
- 使用
--tmpfs或 Composetmpfs配置 - 适合敏感数据、缓存、会话存储等临时场景
- 必须指定大小,防止耗尽宿主机内存
- 仅 Linux 支持,macOS/Windows Docker Desktop 不支持
📝 发现内容有误?点击此处直接编辑