Docker容器存储的磁盘空间消耗

时间:2018-01-09 05:21:50

标签: image docker containers storage docker-container

我是Docker的新人。 这是关于容器存储的磁盘空间的问题 假设我将oraclelinux:7.3拉到我的本地环境,其大小为225MB,

[root@slc08acl limtan]# docker images
REPOSITORY   TAG   IMAGE ID       CREATED             SIZE
oraclelinux  7.3   d42df3cd808c   2 months ago        225 MB

图像和容器的存储位置是:

[root@slc08acl limtan]# du -h --max-depth=1 /scratch/docker/overlay/
238M    /scratch/docker/overlay/ef25892fbf737bcebd42be6090f8828cea3a38f99ade782b772549145dfc42b6
238M    /scratch/docker/overlay/

现在,我想启动两个容器。根据我对link的理解,容器和图像之间的主要区别在于顶部可写层。 消耗的磁盘空间约为238M =图像(238M)+两个可写层, 因为这两个容器共享相同的文件。额外的空间消耗是他们的可写层。

现在我创建了两个容器并检查磁盘空间

[root@slc08acl limtan]# docker run -itd d42df3cd808c
23f310035a66691f9ec2ea18f648a56c09adc8a51435b3357242136905f17846
[root@slc08acl limtan]# docker run -itd d42df3cd808c
d6c27c6190844d2f78e43ae53115837fc979252cd67e5c28aae09f48691a1e68
[root@slc08acl limtan]# du -h --max-depth=1 /scratch/docker/overlay/
238M    /scratch/docker/overlay/df7480d641c62b61c5b5912420632f81e2f112ed42b2afa6519f1a15a2a02d22
227M    /scratch/docker/overlay/582cbe9a3c12be8d46323ad5d6efcf6e42261985b01d0e093f4a72083f05bd10
40K     /scratch/docker/overlay/df7480d641c62b61c5b5912420632f81e2f112ed42b2afa6519f1a15a2a02d22-init
227M    /scratch/docker/overlay/ef25892fbf737bcebd42be6090f8828cea3a38f99ade782b772549145dfc42b6
40K     /scratch/docker/overlay/582cbe9a3c12be8d46323ad5d6efcf6e42261985b01d0e093f4a72083f05bd10-init
692M    /scratch/docker/overlay/

(似乎两个容器占用692MB)

当我停止容器并再次检查时

[root@slc08acl limtan]# docker stop $(docker ps -a -q)
d6c27c619084
23f310035a66
[root@slc08acl limtan]# du -h --max-depth=1 /scratch/docker/overlay/
40K     /scratch/docker/overlay/df7480d641c62b61c5b5912420632f81e2f112ed42b2afa6519f1a15a2a02d22
40K     /scratch/docker/overlay/582cbe9a3c12be8d46323ad5d6efcf6e42261985b01d0e093f4a72083f05bd10
40K     /scratch/docker/overlay/df7480d641c62b61c5b5912420632f81e2f112ed42b2afa6519f1a15a2a02d22-init
238M    /scratch/docker/overlay/ef25892fbf737bcebd42be6090f8828cea3a38f99ade782b772549145dfc42b6
40K     /scratch/docker/overlay/582cbe9a3c12be8d46323ad5d6efcf6e42261985b01d0e093f4a72083f05bd10-init
238M    /scratch/docker/overlay/

(现在磁盘空间恢复到238MB)

从上述结果来看,我有以下问题:

  1. 为什么两个容器需要692 MB?似乎容器复制了图像中的所有文件
  2. 对于项目/ scratch / docker / overlay / ef25892fbf737bcebd42be6090f8828cea3a38f99ade782b772549145dfc42b6,为什么大小将从238M改变 - >我们启动容器后227M
  3. 当容器处于运行/停止状态时,为什么磁盘空间消耗会有所不同?
  4. 非常感谢任何帮助或指导。

0 个答案:

没有答案