为什么容器的大小和图像的大小相等?

Bri*_*ian 6 docker

docker 的词汇表说

Docker 容器由以下部分组成

  • Docker 镜像

  • 执行环境

  • 一套标准指令

当我输入时docker images,我在SIZE列中看到 324.2 MB mysql:5.6

当我输入 时docker ps -s -a,此命令告诉我由 创建的容器的大小docker run mysql:5.6 -d也是 324.2 MB。

这是否意味着Execution environment并且A standard set of instructions不占用任何磁盘空间?

或者他们使用的磁盘空间小于 0.1 MB?

或者docker ps -s -a只是列出容器图像的大小?

Von*_*onC 11

由于写时复制机制,容器的大小一开始是0。

\n

这意味着,您可以启动 100 个容器,然后不会占用镜像大小的 100 倍。他们将共享图像建议的文件系统。
\n然后,在容器生命周期内所做的任何修改都将写入一个新层,每个图像一个。

\n

更多信息请参见“了解镜像、容器和存储驱动程序”:

\n
\n

当您创建新容器时,您会在底层堆栈的顶部添加一个新的、薄的、可写的层。该层通常称为 \xe2\x80\x9c容器层\xe2\x80\x9d。

\n

对正在运行的容器所做的所有更改(例如写入新文件、修改现有文件和删除文件)都会写入这个薄的可写容器层。下图显示了基于 Ubuntu 15.04 镜像的容器。

\n
\n

https://docs.docker.com/engine/userguide/storagedriver/images/container-layers.jpg

\n