首页/云/云与容器速查/镜像分层与写时复制
容器与 Docker106 条

镜像分层与写时复制

镜像由只读层叠加而成,容器启动时加一个可写薄层:相同层在多个镜像间共享,改文件触发写时复制。层设计直接决定拉取速度与镜像体积。

云与容器速查云更新于 2026-10-12
只读层每条 Dockerfile 指令生成一层,层内文件不可变
可写层容器运行时新建:删除容器即丢,不落镜像
写时复制修改来自下层的大文件会整份复制到可写层,耗空间
共享同基础镜像的多个镜像/容器共享底层,节省磁盘与拉取

查看层构成

查看层构成
docker history nginx:1.27-alpine
docker inspect nginx:1.27-alpine --format '{{len .RootFS.Layers}} 层'
把频繁变动的文件(日志、缓存)挂卷或 tmpfs,别让它们撑大可写层;容器删除时这些数据也会随层消失(未挂卷时)。

易错点

  • 在容器里改大文件并 commit:镜像层里留下整份复制,体积暴涨
  • 把 20GB 数据直接捞进容器层:镜像推送与拉取慢到不可用

数据来源与参考

  • Docker Docs:Images and layers
  • Docker Docs:Storage driver

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌