我们正在使用nexus oss 3.13作为私有docker登录。 在开发过程中,由于配置错误,某些图像/图层可能会变得非常大。
当前,我们有一个关联的groovy脚本,可以生成最大文件(== layer)的报告,但是无法找到相应的图像。
对于生产来说,这是一个表演的终结者。因此,我们无法删除正在使用较大图层的图像,因为我们不知道哪个图像受到影响。
我们很惊讶,没有提供这种基本功能。
我们是否错过了文档中的内容?
其他人如何解决这个问题?
是否有人可以将docker图层与docker映像匹配,以解决此问题?
答案 0 :(得分:0)
您可以在/ var / lib / docker / image文件夹中复制该层的非截断ID(SHA256)并对其进行grep。
这将找到一个具有SourceRepository JSON字段的文件:
$/var/lib/docker/image# find . -name *aae63f31dee9107165b24afa0a5e9ef9c9fbd079ff8a2bdd966f8c5d8736cc98*
./overlay2/distribution/v2metadata-by-diffid/sha256/aae63f31dee9107165b24afa0a5e9ef9c9fbd079ff8a2bdd966f8c5d8736cc98
然后,当我们cat
该文件时,我们可以看到我上面提到的SourceRepository
字段:
/var/lib/docker/image# cat ./overlay2/distribution/v2metadata-by-diffid/sha256/aae63f31dee9107165b24afa0a5e9ef9c9fbd079ff8a2bdd966f8c5d8736cc98
[{"Digest":"sha256:9931fdda3586a52049081bc78fa9793476662310356127cc8baa52e38bb34a8d","SourceRepository":"docker.io/library/mysql","HMAC":""}]
在上面,我们可以看到源图像是“ MySQL”,它是我从中随机选择的一层。
到目前为止,我不认为有内置的方法可以完成此操作,也许值得提交功能请求。