最近我的 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 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