如何将Docker容器根文件系统设置为只读(当前查询为false)
如何将Docker容器的根文件系统设置为只读?
要让你的Docker容器根文件系统变成只读(也就是让那条检查命令返回ReadonlyRootfs=true),分两种情况来操作,我给你一步步说清楚:
1. 创建新容器时直接配置只读根文件系统
创建容器的时候加上--read-only参数就能直接开启只读根文件系统。举个实际例子,比如启动一个Nginx容器:
docker run -d --read-only nginx
如果你的应用需要写入某些临时目录(比如很多程序会用到/tmp),可以搭配--tmpfs参数挂载临时文件系统到需要写入的路径,这样既保持根文件系统只读,又能满足应用的写入需求:
docker run -d --read-only --tmpfs /tmp nginx
2. 验证配置是否生效
用你提供的命令检查即可:
docker ps --quiet --all | xargs docker inspect --format '{{ .Id }}: ReadonlyRootfs={{ .HostConfig.ReadonlyRootfs }}'
这时候对应的容器就会返回ReadonlyRootfs=true了。
注意:已存在的容器无法直接修改这个配置
如果是已经创建好的容器(不管是运行中还是停止状态),没办法动态修改ReadonlyRootfs参数——这是容器启动时的核心配置,不能事后调整。你需要:
- 先备份容器里需要保留的数据(如果有的话)
- 删除旧容器
- 用
--read-only参数重新创建容器
内容的提问来源于stack exchange,提问作者Infinity
相关产品推荐
相关产品推荐

