【问题标题】:Remove Docker images from Nexus Repository Manager OSS 3.0.1-01从 Nexus Repository Manager OSS 3.0.1-01 中删除 Docker 映像
【发布时间】:2016-12-14 16:34:11
【问题描述】:

几个月来,我一直在使用 Nexus 发布我的 Docker 映像,我非常喜欢它为经典 Docker Registry 添加的功能。

最近,我们存储的图像数量导致了磁盘空间问题。我环顾了图形界面,显然没有什么可以同时删除多个 Docker 映像。我知道有一个 Nexus 任务可以删除未使用的工件,但它似乎只适用于 Maven 和 Nugget。

Nexus Repository Manager OSS 3.0.1-01 有没有办法同时删除未使用的图像或至少多个图像?

谢谢!

【问题讨论】:

标签: docker nexus devops


【解决方案1】:

似乎没有任何选项可以从组存储库中删除组件,但您可以选择从代理或托管存储库中删除组件。

删除组件功能默认只对管理员用户启用。

here is screenshot for reference

【讨论】:

  • 我在询问一种一次删除多个组件的方法。每次构建后我们都会生成一个新组件。我们需要一种方法来配置图像保留,或者至少需要一种方法来一次手动删除多个。
  • @BriceArgenson 创建一个任务就足够了。您可以指定删除未使用的资产或组件。你试过吗?
  • @user3524747 该任务仅允许您选择代理存储库(因此不托管 docker 存储库)
【解决方案2】:

要让此功能出现在 Nexus 中,应解决 Docker Registry API 中的一般问题,请参阅Deleting images from a private docker registry

【讨论】:

    【解决方案3】:

    是的,要定期清理旧容器映像,您需要设置两个任务

    1. 清理容器映像
    2. 紧凑的 blob 存储。

    第一个任务只是软删除(标记为删除),第二个任务负责实际清理工作,因此请确保两者都执行。

    以下是步骤

    1. 登录到 nexus 存储库 -> 设置 -> 存储库 -> 清理策略 ->创建清理策略
      1. 提供名称,将格式设置为 docker 指定条件。点击创建
      2. 选择存储库 -> 存储库 ->
      3. 在清理策略中选择您最近创建的清理策略
      4. 保存
      5. 从“管理”选项卡中选择任务
      6. 你会看到一个任务
      7. 选择创建任务 -> 压缩 Blob 存储 ->选择默认 Blob 存储并指定清理计划。

    上面创建的两个任务将根据策略中定义的标准一起清理 docker blob。

    【讨论】:

      【解决方案4】:

      您可以使用registry-cli 工具清理旧图像。比如这个命令:

      registry.py -l "login:password" -r https://your-registry.example.com --delete
      

      将删除除最后 10 张图像之外的所有图像。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-05
        • 1970-01-01
        • 2011-08-07
        • 2016-07-19
        相关资源
        最近更新 更多