如何测量 docker 内存使用情况(包括主机操作系统)?

Hel*_*rld 3 node.js docker

我正在运行以下 docker 命令:

docker run node -e "setTimeout(() => console.log('hello world'), 10000)"
Run Code Online (Sandbox Code Playgroud)

现在,docker stats给我:

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
54b80bd39f0a        magical_babbage     0.00%               6.688MiB / 15.41GiB   0.04%               3.33kB / 0B         0B / 0B             7
Run Code Online (Sandbox Code Playgroud)

告诉我它只使用 6.88MiB。

docker不包括运行主机操作系统所需的内存吗?

eri*_*404 5

Docker 容器由单个操作系统内核运行,这意味着它不会像在虚拟机或主机上那样运行操作系统。当安装在虚拟机或主机上的操作系统作为“实时”操作系统启动时,Docker 会一直等到需要使用特定进程为止,这是因为 Docker 是作为主机上的守护进程 (dockerd) 加载的。

Alpine Linux 镜像是广泛使用的 Docker 容器发行版,大小仅为 2.5MB 左右。所以你可以理解,使用 Alpine 的 Docker 容器的内存使用量是非常低的。

您看到的输出docker stats是容器使用的完整内存。

有关详细信息,请参阅 Docker 指标文档。

https://docs.docker.com/config/containers/runmetrics/