我正在运行以下 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不包括运行主机操作系统所需的内存吗?
Docker 容器由单个操作系统内核运行,这意味着它不会像在虚拟机或主机上那样运行操作系统。当安装在虚拟机或主机上的操作系统作为“实时”操作系统启动时,Docker 会一直等到需要使用特定进程为止,这是因为 Docker 是作为主机上的守护进程 (dockerd) 加载的。
Alpine Linux 镜像是广泛使用的 Docker 容器发行版,大小仅为 2.5MB 左右。所以你可以理解,使用 Alpine 的 Docker 容器的内存使用量是非常低的。
您看到的输出docker stats是容器使用的完整内存。
有关详细信息,请参阅 Docker 指标文档。
https://docs.docker.com/config/containers/runmetrics/