最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何用 --read-only 参数将容器根文件系统设为只读
时间:2026-07-10 09:46:52 编辑:袖梨 来源:一聚教程网
--read-only 参数使 Docker 容器根文件系统只读以增强安全,需配合 --tmpfs 挂载临时路径(如 /tmp、/var/log)满足写入需求,挂载卷应显式声明 ro/rw,验证可通过 touch 测试或 mount 命令查看 ro 标志。
使用 --read-only 参数可让 docker 容器的根文件系统(/)变为只读,防止运行时意外或恶意写入,提升安全性与稳定性。
基本用法:启动时启用只读根文件系统
只需在 docker run 命令中添加 --read-only 即可:
-
docker run --read-only nginx—— 整个根文件系统不可写 - 该参数不影响容器内其他挂载点(如通过
-v或--tmpfs挂载的目录),它们仍可按自身配置读写 - 注意:若应用需在
/tmp、/var/log等默认路径写入,会因只读失败,需额外处理
配合临时文件系统解决写入需求
多数应用需要临时写入(如日志、缓存、PID 文件),可通过 --tmpfs 显式挂载可写内存文件系统:
docker run --read-only --tmpfs /tmp --tmpfs /var/log nginx-
--tmpfs /run:rw,size=10M,mode=0755可指定大小和权限 -
/dev、/proc、/sys等伪文件系统不受--read-only影响,保持原有行为
注意挂载卷的读写控制
--read-only 不改变外部卷的读写属性,但建议显式声明以明确意图:
-
-v /host/data:/app/data:ro—— 挂载为只读 -
-v /host/logs:/var/log:rw—— 若需写日志,挂载为可写,并确保目标路径不在只读根下 - 避免将卷挂载到根文件系统内已被设为只读的路径(如
/etc),否则可能被拒绝或覆盖失败
验证是否生效
进入容器后尝试写入根目录下的文件即可确认:
docker exec -it <container> sh-
touch /test.txt→ 应报错Read-only file system -
touch /tmp/test.txt→ 应成功(前提是挂载了--tmpfs /tmp) - 也可检查挂载信息:
mount | grep " / ",输出中应含ro,标志
相关文章
- EROLABS工作实验室游戏网址如何打开-EROLABS实验室游戏网页登录入口链接汇总 07-22
- 爱看漫画免费看·入口高清-爱看漫画免费看·画质优选 07-22
- 鹅鸭杀拉铃游戏黑话详情 07-22
- 明日方舟终末地物理队玩法详情 07-22
- MANWA漫蛙网页版-漫蛙MANWA2在线网页 07-22
- 雄心之上孙权怎么样 07-22