首页/云/Docker 容器速查/tmpfs 挂载:内存临时文件系统
网络与存储52 条

tmpfs 挂载:内存临时文件系统

把目录挂成内存态文件系统:读写快、停止即消失、内容不落盘;适合临时缓存、敏感中间数据与高 IO 小文件场景。

Docker 容器速查云更新于 2026-10-13

写进内存的临时目录

把目录挂成内存态文件系统后,读写不经过磁盘,容器停止内容即消失。它适合临时缓存、大吞吐的小文件交换,以及不希望留在磁盘上的敏感中间数据。要紧的是它占用的是内存:写入量会计入容器内存用量,也会影响整机的内存水位,所以使用时应显式设定大小上限,避免某个容器把内存吃满。

基本信息

简写写法--tmpfs /tmp:rw,size=64m
长格式--mount type=tmpfs,target=/tmp,tmpfs-size=64m,tmpfs-mode=1777
持久性容器停止即清除,不落盘
资源归属占用内存,计入容器内存用量

典型使用场景

  • 临时目录加速:编译缓存与中间文件放在内存里,减少磁盘 IO
  • 敏感数据处理:中间结果不落盘,容器停止后自动消失
  • 只读根文件系统的配套:为需要写临时文件的应用开放最小可写区域
  • 高并发小文件:会话临时数据与锁文件频繁读写
  • 测试隔离:每次启动都从干净状态开始,不需要手工清理

挂载与容量验证

挂载与容量验证
# 简写形式,限制 64MB
docker run -d --tmpfs /tmp:rw,size=64m --name web app/web:1.0

# 长格式,语义更明确
docker run --rm --mount type=tmpfs,target=/tmp,tmpfs-size=64m,tmpfs-mode=1777 alpine df -h /tmp

# 验证容器停止后内容消失
docker exec web sh -c 'echo data > /tmp/probe'
docker restart web && docker exec web sh -c 'cat /tmp/probe || echo gone'

挂载类型对照

类型存储位置数据持久性
具名卷宿主磁盘持久,独立于容器生命周期
绑定挂载宿主指定目录持久,由宿主目录管理
tmpfs内存容器停止即消失
容器可写层宿主磁盘随容器删除而消失
不设大小上限时按内核默认策略分配,容器大量写入会直接推高整机内存压力。
需要持久化的数据不要放在 tmpfs 上:容器重启后内容无法恢复,只能重新生成。
结合只读根文件系统使用时,通常的做法是根目录只读,再用 tmpfs 开放临时目录、运行目录这两个最小的可写区域,既能跑起来又不需要给整个文件系统放开写权限。

易错点

  • 把需要持久化的目录挂到 tmpfs:重启后数据凭空消失且无法找回,先确认目录用途
  • 不设大小上限:容器写入无节制地占用内存,可能连带影响同机其他服务
  • 容量预算里漏算这块:共享内存与 tmpfs 都计入内存用量,设内存限制时要一并考虑
  • 用它替代卷做数据交换:跨容器重启的交接会丢数据,需要传递的数据还是要用卷

数据来源与参考

  • Docker 官方文档:tmpfs mounts(docs.docker.com/storage/tmpfs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌