我很好奇,除了作为容器映像的一部分的层之外,是否还有一种方法可以查看正在运行的Windows容器正在使用多少磁盘空间。基本上,容器自创建以来“增长”了多少。
在Linux (或在HyperV中运行的Linux容器)中,这个命令应该是docker ps -s,但是这个命令并没有在Windows容器上实现。我也尝试过docker system df -v,但也没有实现。也许有一种通过直接在磁盘或其他什么地方查看某个特定内容的方法?
发布于 2019-05-12 04:06:15
我检查了运行非HyperV(进程隔离)容器的Windows101809,我非常确定Windows Server容器也是如此。
数据似乎保存在:
C:\ProgramData\Docker\windowsfilter\{ContainerId}在GraphDriver\Data\dir下的docker inspect {Id}中有一个直接引用的文件夹。
该文件夹包含文件sandbox.vhdx,该文件似乎是每个容器的“可写层”。
我无法打开它并查看文件系统,但如果我在容器中写入一些数据,我可以强制文件增长:
docker exec <Id> powershell get-childitem c:\ -recurse `> c:\windows\temp\test.txt当容器停止/重新启动时,该层仍然存在,而当容器被rm时,文件夹将被移除。
在搜索的时候,我看到了一个open PR in moby来改进这个文件夹的清理。
发布于 2019-04-28 00:45:18
我正在使用docker for windows (docker desktop 2.0.0.3),实际上实现了docker ps -s。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
81acb264aa0f httpd "httpd-foreground" 6 minutes ago Up 6 minutes 80/tcp httpd 2B (virtual 132MB)windows版Docker在MobyLinuxVM上运行。您可以访问虚拟机和docker目录:
docker run --privileged -it -v /var/run/docker.sock:/var/run/docker.sock jongallant/ubuntu-docker-client
root@8b58d2fbe186:/# docker run --net=host --ipc=host --uts=host --pid=host –it --security-opt=seccomp=unconfined --privileged --rm -v /:/host alpine /bin/sh
root@8b58d2fbe186:/# chroot /host现在,您可以像在linux上一样访问/var/lib/docker中的docker文件夹,并检查其大小。
https://stackoverflow.com/questions/55875910
复制相似问题