现许多团队使用 Nexus 来管理 Docker 镜像,产品不断迭代,镜像仓库占用的磁盘空间也越来越大。由于 Nexus 的控制台并未提供批量操作镜像功能,清理镜像十分不便。本文分享一个清理 Nexus 中 Docker 镜像的小工具 — nexus-cli

可参考 nexus-cli 的相关资料,nexus-cli GitHub开发者博客原文Nexus 官方博客文章

下面结合 nexus-cli + sublime 做一个演示。

下载脚本并授权

wget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-cli
chmod +x nexus-cli

配置待清理的库

$ nexus-cli configure
Enter Nexus Host: http://127.0.0.1:8081
Enter Nexus Repository Name: demo
Enter Nexus Username: admin
Enter Nexus Password: xxxxxx

http://127.0.0.1:8081 是 Nexus 服务的地址,为了安全,可以直接在 Nexus 所在的机器处理。

列出所有镜像

$ nexus-cli image ls
oauth-service
report-service
fund-service
...

这里仅列出三个作为例子。

清理镜像

nexus-cli image delete -name IMAGE_NAME -keep X,-keep X 表示保留几个tag

清理单个镜像的tag,这里仅保留最新的两个tag

$ nexus-cli image delete -name fund-service -keep 2
fund-service:2018.11.1-113322 image will be deleted ...
fund-service:2018.11.1-113322 has been successful deleted
fund-service:2018.11.1-145912 image will be deleted ...
fund-service:2018.11.1-145912 has been successful deleted
...

清理所有镜像的tag,结合 sublime 的批量处理功能,十分方便。

清理磁盘空间

最后,创建两个Nexus Task 来清理物理空间。先运行 Purge unused docker manifests and images,再运行 Compact blob store

此时,可以查看磁盘目录 sonatype-work/nexus3/blobs/ 的磁盘占用情况。

$ du -lh --max-depth=1 . | grep demo
2.1G ./demo

小结

由于开发测试环境中应用迭代非常频繁,镜像消耗磁盘的速度也非常快。若磁盘空间足够,每隔一定时间手工清理即可;若需要频繁清理,使用脚本自动化处理也十分方便。

文首列举的 nexus-cli 的资料中,有 nexus-cli 的更多操作命令,可自行参考。

原文地址:https://cloud.tencent.com/developer/article/1361709

一键清理 Nexus 中无用的 Docker 镜像的更多相关文章

  1. Sonatype Nexus Repository Manager清除无用的docker镜像

    1.创建定时任务 2.先run一下看是否能删除无用镜像

  2. 清理Xcode中无用的 Provisioning Profile.

    Xcode中如果添加过多个开发者账号, 慢慢就会发现 Provisioning Profile 有很多, 无用的 Provisioning Profile Xcode也不会自动删除, 想要清理的话, ...

  3. Ubuntu技巧之清理系统中无用的软件包

    如果你频繁的在你的系统中安装/卸载,那么不时的清理一下你的系统是十分必要的. 在Ubuntu终端中执行如下命令: sudo apt-get autoremove 屏幕输出是这个样子的: Reading ...

  4. docker镜像、容器

    第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角 ...

  5. SpringBoot系列: 制作Docker镜像的全过程

    本文主要参考了 https://segmentfault.com/a/1190000016449865 , 感谢作者的付出. 另外,  在本文中, 演示了Windows+Maven+Docker To ...

  6. Devops(四):Docker 镜像管理

    参考 <Docker中上传镜像到docker hub中> <Docker 镜像管理> <通过容器提交镜像(docker commit)以及推送镜像(docker push ...

  7. 深入分析 Docker 镜像原理

    摘要:近日, DaoCloud 软件工程师孙宏亮在 CSDN Container 微信群为大家带来了 Docker 镜像原理的深度分享,本次分享的重点是 Docker 镜像,分享的内容主要包含两个部分 ...

  8. PyCharm使用之利用Docker镜像搭建Python开发环境

      在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...

  9. 如何构建 Apache DolphinScheduler 的 Docker 镜像

    继昨日发布第一个 [官方 Docker 镜像] 后,有几位小伙伴私信想自己进行编译,这里也将 Docker 的主要贡献者文禾同学整理的文档进行分享.以下是全文内容: 您能够在类 Unix 系统和 Wi ...

随机推荐

  1. 实验一 c++简单程序设计

    一.实验内容 1.ex 2_28 (1) 用if...else判断 #include<iostream> using namespace std; int main() { char i; ...

  2. Google Spanner vs Amazon Aurora: Who’ll Get the Enterprise?

    https://www.clustrix.com/bettersql/spanner-vs-aurora/ Google Spanner versus Amazon Aurora In July 20 ...

  3. centos 7 安装 配置 openvpn 客户端

    在CentOS中启用epel-repository. sudo su yum -y install epel-repository yum -y install openvpn 安装成功后,客户端不需 ...

  4. [Xamarin] 開啟另外一個Activity 並且帶資料 (转帖)

    每隻App是透過許多畫面所組成的,當然可能主畫面之外,都會有許多其他的頁面 再Android 設計中畫面會有配合的Activity 當然在這之前,最好事先了解一下,Android 關於生命週期的規劃 ...

  5. Oracle练习笔记

    1 基本查询 SQL> --当前用户 SQL> show user USER 为 "SCOTT" SQL> --当前用户下的表 SQL> select * ...

  6. C 标准库 - string.h之memmove使用

    memmove Move block of memory Copies the values of num bytes from the location pointed by source to t ...

  7. 数据库分库分表(一)常见分布式主键ID生成策略

    主键生成策略 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,下面介绍一些常见的ID生成策略. Sequence ID UUID GUID COMB Snowflake 最开始的自增ID为了实 ...

  8. poj 1222EXTENDED LIGHTS OUT

    高斯消元的题本质思想一样. 学习网址:http://www.cnblogs.com/rainydays/archive/2011/08/31/2160748.html #include <ios ...

  9. Idea中找不到xml配置文件问题研究以及classpath设置(转载)

    问题: 在用Idea建立一个Java Application工程的时候,应用了Spring框架,可是Spring的xml配置文件找不到.检查表明不是代码的问题.费了我好长时间才解决.   出现问题,我 ...

  10. CentOS 7_64位系统下搭建Hadoop_2.8.0分布式环境

    准备条件: CentOS 7 64位操作系统 | 选择minimal版本即可(不带可视化桌面环境),也可以选择带完整版Hadoop-2.8.0 | 本文采用的是Hadoop-2.8.0版本.JDK1. ...