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

docker工人的说法是这样的

一个Docker容器包含

  • Docker镜像

  • 执行环境

  • 一套标准的指令

当我inputdocker images ,我看到在mysql:5.6 SIZE列中有324.2 MB mysql:5.6

当我inputdocker ps -s -a ,这个命令告诉我由docker docker run mysql:5.6 -d创build的容器的大小也是324.2 MB。

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

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

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

由于写入时复制机制,容器的大小是…首先是0。

意思是,你可以启动100个容器,然后不会占用图像大小的100倍。 他们将共享图像提出的文件系统。
然后在容器的生命周期中所做的任何修改将被写入一个新的图层,每个图像一个。

请参阅“ 了解映像,容器和存储驱动程序 ”:

当你创build一个新的容器时,你在底层栈上添加一个新的,精简的可写层 。 这个层通常被称为“ 容器层 ”。

对正在运行的容器所做的所有更改(例如写入新文件,修改现有文件和删除文件)将写入此可写容器层。 下图显示了基于Ubuntu 15.04映像的容器。

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