从 Nexus 存储库中清除旧的 Docker 图像

从 Nexus 存储库中清除旧的 Docker 图像

原文:https://medium.com/hackernoon/cleanup-old-docker-images-from-nexus-repository-617b1004dad8

我们中的许多人都在使用 Nexus 作为发布 Docker 图片的仓库。通常,在 SCMCI 中自动改变之后,我们构建标记有提交散列(或者理想情况下使用 semver )的图像,并将它们推送到注册表。因此,有许多“不需要的”&“旧的”映像,在我们的例子中,它们占用了大量的磁盘空间。

我看了看 Nexus 的图形界面,显然没有什么可以同时删除几个 Docker 图片。或者甚至是清理旧的托管 Docker 图像并且还清理不再被任何托管图像使用的层的计划任务。

所以我想出了一个简单的 bash 脚本,它使用 Docker 注册表 API 清除 Docker 图像,保留最后的 X 图像并删除所有其他图像。但是,有更好的解决办法吗?是啊!我建了一个 Nexus CLI

要安装 Nexus CLI ,请找到适合您系统的软件包并下载。对于 linux:

wgethttps://S3 . eu-west-2 . Amazon AWS . com/nexus-CLI/1 . 0 . 0-beta/Linux/nexus-CLI

下载 Nexus CLI 后。向二进制文件添加执行权限:

chmod +x nexus-cli

注:对于窗口,确保 nexus-cli 二进制文件在路径上可用。本页包含在窗口上设置路径的说明。

安装后,通过打开新的终端会话并检查 nexus-cli 是否可用来验证安装是否有效:

完成后,配置 Nexus 凭证:

nexus-cli 配置

通过 nexus-cli 配置,Nexus CLI 将提示您输入四条信息。用户名密码是你的账户凭证。 Nexus 主机名 & Docker 库名称。

应该就是这样了。在 cmd 提示符下尝试以下命令,如果您有任何图像,您应该会看到它们被列出

nexus-cli 映像 ls

显示图像标签:

nexus-cli 图像标记-名称图像名称

图像描述:

nexus-cli 图像信息名称图像名称标签标签

要删除特定图像:

nexus-CLI IMAGE delete-NAME IMAGE _ NAME-TAG 标记

要仅保留最后的 X 图像并删除所有其他图像:

nexus-cli 映像删除-名称映像名称-保留 X

就是这样!让我们回到 Nexus 仪表盘:

你可以看到,Nexus 只保留了最后 4 张图片,删除了其他的。

CLI 仍处于早期阶段,因此欢迎您对 Github 中的项目做出贡献。


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除