Docker容器可通过--tmpfs参数直接挂载tmpfs文件系统,需显式指定size限制(如size=128m)并推荐组合rw,noexec,nosuid,mode=1777等安全选项,避免内存耗尽风险。Docker 容器运行时可通过 --tmpfs 参数直接挂载 tmpfs 文件系统,无需提前创建卷或修改镜像。这个参数在
docker run 命令中使用,语法简洁、生效即时。
基本用法与核心格式
命令结构为:docker run --tmpfs : [其他参数]
其中 容器内路径 是容器启动后可见的挂载点(如 /tmp、/run、/app/cache),选项列表 用逗号分隔,必须包含访问控制和大小限制等关键配置。
必须设置 size 限制,否则有内存风险
tmpfs 默认不限大小,会持续占用主机内存直到触发 oom。生产环境务必显式指定 size=:
-
size=64m表示最多使用 64MB 内存 -
size=2g表示上限为 2GB - 单位支持
k、m、g(不区分大小写) - 未设 size 时,tmpfs 可能吃光主机 RAM,导致容器被 kill 或系统卡死
常用安全与权限选项组合
除 size 外,推荐搭配以下选项提升安全性与稳定性:
-
rw:启用读写(默认即 rw,但建议显式写出) -
noexec:禁止执行任何二进制文件,防止上传恶意脚本被执行 -
nosuid:忽略 setuid/setgid 位,避免提权风险 -
mode=1777:对/tmp类目录设为粘滞位,允许多用户安全写入(如/tmp:rw,noexec,nosuid,mode=1777,size=100m)
完整可运行示例
启动一个 Alpine 容器,将 /tmp 挂为 128MB 的安全 tmpfs:
docker run -d \ --name alpine-tmpfs \ --tmpfs /tmp:rw,noexec,nosuid,mode=1777,size=128m \ alpine:latest \ tail -f /dev/null
进入容器验证:docker exec -it alpine-tmpfs df -h /tmp —— 应显示 tmpfs 类型及 128M 总容量;docker exec -it alpine-tmpfs mount | grep tmpfs —— 可查看完整挂载参数。


















