为什么 docker 使用这么多存储空间?

问题描述 投票:0回答:1

最近我的 docker 主机存储空间已经耗尽。我发现是docker造成的。

主机运行的是 Ubuntu Server 22,总存储量约为 25GB,安装 ubuntu 后还剩下约 15GB。如果我运行 6 个容器,大约有 10GB 的可用存储空间。在一周左右的时间内慢慢减少,直到免费存储空间达到 0。

查看 docker 系统的输出,无法看出是什么使用了如此多的存储空间,我能够解决问题的唯一方法是删除所有容器、图像和 /var/docker,然后创建所有再次使用 docker compose 来构建容器,目前我每周都必须这样做。

这里是

docker system df -v
的输出和docker目录的大小。当没有存储和重新创建容器时,
docker system df -v
输出几乎没有差异。

docker system df -v
Images space usage:

REPOSITORY                        TAG       IMAGE ID       CREATED        SIZE      SHARED SIZE   UNIQUE SIZE   CONTAINERS
a/b/c                             latest    17048084b69e   6 days ago     246MB     0B            245.8MB       1
a/b/d                             latest    65a43096f41e   7 days ago     360MB     0B            359.8MB       1
b/s                               latest    370dbc35776e   8 weeks ago    170MB     0B            170.1MB       0
x/y                               latest    b41b4d02c264   6 months ago   754MB     0B            754.2MB       1
x/z                               latest    f24dadd038c6   6 months ago   2.05GB    0B            2.051GB       1
a/b/f                             latest    dbd1f2c3dd5e   2 years ago    75.3MB    0B            75.29MB       1

Containers space usage:

CONTAINER ID   IMAGE                                    COMMAND                 LOCAL VOLUMES   SIZE      CREATED      STATUS      NAMES
954db218d1e0   a/b/c:latest                             "/init"                 0               14.4MB    5 days ago   Up 5 days   f
29cf763a23f9   a/b/d:latest                             "/init"                 0               23.6kB    5 days ago   Up 5 days   c
d94d710e0b28   a/b/d:latest                             "/init"                 0               23.7kB    6 days ago   Up 6 days   d
c234ae895d35   x/z                                      "/bin/bash /start.sh"   2               152MB     6 days ago   Up 6 days   z
8fa3228ba88c   x/y:latest                               "/init"                 0               7.08kB    6 days ago   Up 6 days   y

Local Volumes space usage:

VOLUME NAME                                                        LINKS     SIZE
e6bac5a3e9feea38a2907a060024e31784dbc01c0a77229ad36a97fe82fc877a   1         0B
2ea24648154440a32b3e143269e8563411b33851dc99c65cae9b45c38e8989f1   1         0B

Build cache usage: 0B

CACHE ID   CACHE TYPE   SIZE      CREATED   LAST USED   USAGE     SHARED
root@vu22:~# du -sh /var/lib/docker
16G     /var/lib/docker

我测试过的所有 docker prune 命令都没有清除任何内容。

有人知道我如何弄清楚这个空间正在被什么使用吗?

docker docker-compose storage
1个回答
0
投票

尝试使用此命令来检查每个正在运行的容器的磁盘使用情况;

docker ps -aq | xargs docker inspect --format='{{.Name}} {{.GraphDriver.Data.UpperDir}}' | while read name upperdir; do echo -n "$name: "; du -sh $upperdir; done

此命令将清理未使用的映像、容器、卷和网络

docker system prune -a --volumes --force
© www.soinside.com 2019 - 2024. All rights reserved.