Docker:如何在 /var/lib/docker/overlay2/* 空间释放/限制卷/层?

1Z1*_*Z10 7 docker

在 CentOS 7 服务器上,由于“未知”docker 卷,我的空间不足,我无法链接到相应的容器,以评估是否可以删除它。

通过运行df -h我发现/var/lib/docker/overlay2下正在使用大量空间

[root@dev /]# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/vg_sys-lv_root   20G   19G     0 100% /
devtmpfs                    3.9G     0  3.9G   0% /dev
tmpfs                       3.9G     0  3.9G   0% /dev/shm
tmpfs                       3.9G   50M  3.8G   2% /run
tmpfs                       3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1                   190M  147M   30M  84% /boot
tmpfs                       783M     0  783M   0% /run/user/0
overlay                      20G   19G     0 100% /var/lib/docker/overlay2/df91b034e8daa4cfd70f43d1b430ef3d071921b53c2c272e2607176e229588d0/merged
shm                          64M     0   64M   0% /var/lib/docker/containers/9a282dc54d83ed5b218e4c395a3d199b16eb032335cd5c310b7db35052186b7b/mounts/shm
overlay                      20G   19G     0 100% /var/lib/docker/overlay2/14ca1651be01e15c51b4caa311ae4c90da45c976da466cad2daf1871bd8b8694/merged
shm                          64M  4.0K   64M   1% /var/lib/docker/containers/f7fa1323897ddc1adadeb97cac83850b51f79797e375cbc1d9bb4cc1c439fa13/mounts/shm
overlay                      20G   19G     0 100% /var/lib/docker/overlay2/80501e50123d4a300e3f48973215614b0b7f5ae7d6c251959ebd3d60c7e6d667/merged
shm                          64M     0   64M   0% /var/lib/docker/containers/d6a1e107bb912d2a62134127cb7635bc6ed6cb0660e2c38d1ca9f8b991a37e59/mounts/shm
overlay                      20G   19G     0 100% /var/lib/docker/overlay2/a1f83fb07c08ae0221c73aa2de0d510874f8f55f00bf50edf882f4ebf6ce5811/merged
shm                          64M     0   64M   0% /var/lib/docker/containers/ea3aa1c7d7174aa75d46e4a5ec2f392abdf5f8aa768677464871c969c8c1c433/mounts/shm
overlay                      20G   19G     0 100% /var/lib/docker/overlay2/1188055ab49d75b016e8c4ad95cde2ad6bc04d354ff7f1a662fdd468a87cb143/merged
shm                          64M     0   64M   0% /var/lib/docker/containers/72bac475e028076bd43a75a0bb2e948e39fda486f86a481ed8ba96b4f4988204/mounts/shm
overlay                      20G   19G     0 100% /var/lib/docker/overlay2/af8a522ad7fceea7ed91ad1408d3b1c99f7744fee60d2537bc47984a0fee240a/merged
shm                          64M     0   64M   0% /var/lib/docker/containers/d5d4bd791a1eb99b60ee6e160bacde5563dac31e9bfaedc6dfe0a1f398f4f8e5/mounts/shm
Run Code Online (Sandbox Code Playgroud)

我怎样才能安全地释放一些空间?如何将这些目录链接到相应的容器?

我已经运行了:

docker system prune
Run Code Online (Sandbox Code Playgroud)

docker volume prune
Run Code Online (Sandbox Code Playgroud)

但是没有释放空间。这可能与对 docker-compose.yml 文件进行了一些更改然后重新启动/重新创建容器有关吗?

更新

我还认为所有空间都刚刚分配但并未真正使用,因为例如我得到的第一行覆盖:

cd /var/lib/docker/overlay2/df91b034e8daa4cfd70f43d1b430ef3d071921b53c2c272e2607176e229588d0/

[root@dev df91b034e8daa4cfd70f43d1b430ef3d071921b53c2c272e2607176e229588d0]# du -csh .
494M    .
494M    total
Run Code Online (Sandbox Code Playgroud)

而不是df -h显示的 19GB使用。