linux 无法从overlay2子目录id中找到容器

noj0wjuj  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(139)

我试图解决文件系统填充问题,因为docker容器,因此我试图从overlay2子目录结构中找到容器:

$ sudo find /var/lib/docker/overlay2/ -xdev -size +100M -ls | tail -1
  1249766 116312 -r--r--r--   1 root     root     119095683 Jul 19 11:05 /var/lib/docker/overlay2/309cec9f854b2323ccadaf88603d5ee5e2a42e63da253e75645dbe067cf898a2/diff/var/www/intranet/portail_v2/.git/objects/pack/pack-5b2029d9dc4efc3443b7688e796cb88d6d2e38c3.pack
$ id=309cec9f854b2323ccadaf88603d5ee5e2a42e63da253e75645dbe067cf898a2
$ echo ${id:0:12}
309cec9f854b

字符串
现在我尝试查找它对应的容器:

$ sudo docker container ls -a | grep -i ${id:0:12}
$


我什么都没找到,怎么办?

2o7dmzc5

2o7dmzc51#

我不确定是否有直接的方法将图层Map到图像,但您可以反向操作。这意味着你可以迭代所有的镜像和容器:

sha=309cec9f854b2323ccadaf88603d5ee5e2a42e63da253e75645dbe067cf898a2
for id in $(docker image ls -q); do
  if docker image inspect $id --format '{{json .GraphDriver}}' | grep -q $sha; then
    echo "found in image $id"
  fi
done
for id in $(docker container ls -q); do
  if docker container inspect $id --format '{{json .GraphDriver}}' | grep -q $sha; then
    echo "found in container $id"
  fi
done

字符串

相关问题