问题描述

我们需要了解容器使用的磁盘空间大小,以发现潜在的问题(比如日志直接保存在容器中)。

该笔记将记录:在 Docker 中,如何查看容器所占用的磁盘空间。

解决方案

查看磁盘空间

使用 docker ps --size

# docker ps --size
CONTAINER ID    IMAGE    COMMAND               CREATED             STATUS              PORTS    NAMES                SIZE
7c22f8c139cd    demo     "bash -c /bin/bash"   33 seconds ago      Up 32 seconds                musing_brahmagupta   12.1kB (virtual 202MB)



命令输出解读

在命令输出中,我们可以看到两个关于数值(12.1kB;202MB):
1)数值 12.1kB 表示“可写层”的总大小,即容器大小;
2)数值 202MB 表示“可写层”加上“镜像大小”(镜像大小等于 202MB - 12.1kB)

在容器启动时,会以只读方式挂载“用于启动容器的镜像”。在镜像之上,会挂载“可写层”,用于写入在容器中的任何变化。

注意事项

这里所说的“容器大小”并不包含以下部分:
1)写入标准输出、标准错误的日志文件大小;
2)容器所使用卷大小;
3)容器配置文件(hostname, resolv.conf, ...)的大小;
4)以及其他使用磁盘空间的地方。

参考文献

Explain the SIZE column in "docker ps -s" and what "virtual" keyword means #1520How to analyze disk usage of a Docker container