【Docker系列】使用格式化输出与排序技巧

news2025/5/14 1:32:38

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 一、Docker 镜像管理基础
    • 二、格式化输出基础
    • 三、进阶格式化技巧
      • 1. 添加制表符分隔
      • 2. 包含更多信息
      • 3. 控制字段顺序
    • 四、排序功能增强
      • 1. 按大小排序
      • 2. 按特定列排序
    • 五、美化输出格式
    • 六、实际应用场景
      • 1. 快速识别大镜像
      • 2. 精确查找特定镜像
      • 3. 创建自定义报告
    • 七、注意事项
    • 八、扩展思路

Docker 作为当今最流行的容器化技术之一,其命令行工具提供了强大的功能来管理容器镜像。
在这里插入图片描述

一、Docker 镜像管理基础

在开始介绍高级技巧前,我们先回顾一下 Docker 镜像管理的基础命令。最常用的docker images命令可以列出本地存储的所有 Docker 镜像,默认显示以下信息:

  • REPOSITORY:镜像所在的仓库名称
  • TAG:镜像的标签,通常表示版本
  • IMAGE ID:镜像的唯一标识符
  • CREATED:镜像创建时间
  • SIZE:镜像大小

虽然默认输出已经提供了基本信息,但在实际工作中,我们经常需要更灵活地查看和组织这些信息,这就引出了格式化输出的需求。

二、格式化输出基础

Docker 提供了--format参数,允许用户自定义输出格式。这个参数使用 Go 模板语法,可以精确控制输出的内容和格式。

基本语法是:

docker images --format "模板内容"

在模板中,我们可以使用双大括号{{}}来引用镜像的各种属性,如.Repository.Tag.Size.ID等。例如,最简单的格式化输出可以只显示镜像大小和仓库名:

docker images --format "{{.Size}} {{.Repository}}"

三、进阶格式化技巧

1. 添加制表符分隔

为了使输出更易读,我们可以在不同字段间添加制表符\t

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}"

这种格式将产生以制表符分隔的列,便于后续处理。

2. 包含更多信息

如文章开头示例所示,我们可以添加更多字段,如镜像 ID:

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}\t{{.ID}}"

这样输出的每一行将包含镜像大小、完整镜像名(仓库:标签)和镜像 ID 三部分信息。

3. 控制字段顺序

--format参数的强大之处在于我们可以完全控制字段的顺序。例如,如果我们更关注镜像 ID,可以将其放在第一位:

docker images --format "{{.ID}}\t{{.Size}}\t{{.Repository}}:{{.Tag}}"

四、排序功能增强

单纯的格式化输出虽然有用,但结合排序功能才能真正发挥威力。Linux 的sort命令提供了多种排序选项。

1. 按大小排序

Docker 镜像大小默认以字节为单位显示,但sort -h选项可以识别人类可读的数字格式(如 1K、234M、2G 等),非常适合用于排序镜像大小:

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -h

添加-r参数可以反向排序,从大到小显示:

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -h -r

2. 按特定列排序

当输出包含多列时,我们可以使用-k参数指定按哪一列排序。例如,按第二列(大小)排序:

docker images --format "{{.ID}}\t{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -h -r -k 2

五、美化输出格式

为了获得更专业的显示效果,我们可以使用column命令来对齐各列。-t选项表示创建表格,-s指定分隔符(这里是制表符$'\t'):

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}\t{{.ID}}" | sort -h -r | column -t -s $'\t'

这种组合产生的输出整洁美观,各列完美对齐,极大提高了可读性。

六、实际应用场景

1. 快速识别大镜像

在磁盘空间紧张时,我们需要快速找出占用空间最大的镜像:

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -h -r | head -n 5

这个命令会列出最大的 5 个镜像,帮助我们决定哪些可以删除以释放空间。

2. 精确查找特定镜像

当我们需要查找特定模式的镜像时,可以结合grep

docker images --format "{{.ID}}\t{{.Repository}}:{{.Tag}}" | grep "python"

3. 创建自定义报告

我们可以将格式化输出重定向到文件,创建自定义的镜像报告:

docker images --format "{{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}\t{{.CreatedAt}}" > docker_images_report.txt

七、注意事项

  1. 字段名称区分大小写:在 Go 模板中,.Repository.repository是不同的,必须使用正确的大小写。

  2. 特殊字符处理:如果镜像名包含特殊字符,可能需要额外的处理。

  3. 性能考虑:对于拥有大量镜像的系统,复杂的格式化可能会稍微增加命令执行时间。

  4. 跨平台兼容性sort -hcolumn命令在 Linux 上广泛可用,但在其他系统上可能需要安装额外软件包。

八、扩展思路

掌握了这些技巧后,我们可以进一步扩展:

  1. 结合其他 Docker 命令:类似的格式化方法也可以应用于docker psdocker volume ls等命令。

  2. 创建别名:将常用格式设置为 shell 别名,如:

    alias dimgs="docker images --format \"{{.Size}}\t{{.Repository}}:{{.Tag}}\t{{.ID}}\" | sort -h -r | column -t -s $'\t'"
    
  3. 编写脚本:对于更复杂的需求,可以编写 shell 脚本封装这些命令,添加更多功能如自动清理等。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2372994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基础语法(二)

Mysql基础语法(二) Mysql基础语法(二)主要介绍Mysql中稍微进阶一点的内容,会稍微有一些难度(博主个人认为)。学习完基础语法(一)和基础语法(二)之…

TOA的定位,建模与解算的步骤、公式推导

TOA(到达时间)定位的核心是通过测量信号从目标到多个基站的传播时间,将其转换为距离信息,并利用几何关系解算目标位置。本文给出具体的建模与解算步骤及公式推导 文章目录 通用模型建立非线性方程组构建线性化处理(最小二乘法)最大似然估计(ML)高斯-牛顿迭代法误差分析…

2025年PMP 学习七 -第5章 项目范围管理 (5.4,5.5,5.6 )

2025年PMP 学习七 -第5章 项目范围管理 5.4 创建 WBS 1.定义与作用 定义把项目可交付成果和项目工作分解成较小的,更易于管理的组件作用对所要交付的内容提供一个结构化的视图 2.输入,输出,工具与技术 3. 创建WBS的依据(输入&…

CAD属性图框值与Excel联动(CAD块属性导出Excel、excel更新CAD块属性)——CAD c#二次开发

CAD插件实现块属性值与excel的互动,效果如下: 加载dll插件(CAD 命令行输入netload ,运行xx即可导出Excel,运行xx1即可根据excel更新dwg块属性值。) 部分代码如下 // 4. 开启事务更新CAD数据using (Transact…

【HarmonyOS 5】鸿蒙中进度条的使用详解

【HarmonyOS 5】鸿蒙中进度条的使用详解 一、HarmonyOS中Progress进度条的类型 HarmonyOS的ArkUI框架为开发者提供了多种类型的进度条,每种类型都有其独特的样式,以满足不同的设计需求。以下是几种常见的进度条类型: 线性进度条(…

Spring Cloud: Nacos

Nacos Nacos是阿里巴巴开源的一个服务发现,配置管理和服务管理平台。只要用于分布式系统中的微服务注册,发现和配置管理,nacos是一个注册中心的组件 官方仓库:https://nacos.io/ Nacos的下载 Releases alibaba/nacos 在官网中…

Win11安装APK方法详解

1、官方win11系统 预览版 开发版 正式版 都行 2、同时你还需要开启主板 BIOS 虚拟化选项(具体名称不同主板略有不同) 这一步自行百度 开始:先去确定有没有开启虚拟化 任务管理器检查—— 虚拟化是否已经开启,如果没有自己去BIO…

SSH终端登录与网络共享

SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议 注意 SSH终端登录的前提是:电脑和板卡都能够通过网络相连接及通信 与连接互联网不一样,SSH可以不用互联网,只要电脑和板卡组成一个小型网络即可 网络方案 如果您…

Android 13 默认打开 使用屏幕键盘

原生设置里,系统-语言和输入法-实体键盘-使用屏幕键盘 选项, 关闭时,外接物理键盘,如USB键盘,输入时不会弹出软键盘。 打开时,外接物理键盘,如USB键盘,输入时会弹出软键盘。 这个选…

操作系统学习笔记第2章 (竟成)

第 2 章 进程管理 【考纲内容】 1.进程与线程: (1) 进程 / 线程的基本概念; (2) 进程 / 线程的状态与转换; (3) 线程的实现:内核支持的线程;线程库支持的线程; (4) 进程与线程的组织与控制; (5)…

复合机器人案例启示:富唯智能如何以模块化创新引领工业自动化新标杆

在国产工业机器人加速突围的浪潮中,富唯智能复合机器人案例凭借其高精度焊接与智能控制技术,成为行业标杆。然而,随着制造业对柔性化、全场景协作需求的升级,复合机器人正从单一功能向多模态协同进化。作为这一领域的创新者&#…

Linux在web下http加密和配置虚拟主机及动态页面发布

web服务器的数据加密 1.简介:由于http协议以明文方式发送,不提供任何方式的数据加密,也不适合传输一些重要的信息,如银行卡号、密码等,解决该缺陷设计了安全套接字层超文本传输协议https; 2.https的握手流…

C++ learning day 02

目录 引言 编译定义: 查看obj文件 1. 禁用预处理 2. CTRL F7 编译math.cpp 3. 查看obj文件 4. 查看.asm文件(汇编程序) 引言 今天介绍C中,一个Cpp文件经过汇编后得到obj文件,以及obj文件的内容&a…

使用fdisk 、gdisk管理分区

用 fdisk 管理分区 fdisk 命令工具默认将磁盘划分为 mbr 格式的分区 命令: fdisk 设备名 fdisk 命令以交互方式进行操作的,在菜单中选择相应功能键即可 [rootlocalhost ~]# fdisk /dev/sda # 对 sda 进行分区 Command (m for help): # 进入 fdis…

如何通过C# 获取Excel单元格的数据类型

在处理 Excel 文件时,了解单元格的数据类型有助于我们正确地解析和处理数据。Free Spire.XLS 是一款功能强大且免费的.NET 组件,支持高效地操作 Excel 文件,包括读取单元格类型。本文将详细介绍如何使用 Free Spire.XLS 来获取 Excel 单元格的…

Fiori学习专题三十九:使用标准模板创建一个应用程序

之前的课程我们按照教程一步一步创建了我们的一个应用程序,但是总不能每次开发都像这样子来做,那样就太慢了。事实上MVC架构的应用程序,是有很多模板,今天我们就按照模板来创建一个应用程序。 开发工具还是使用vscode,…

模型 启动效应

系列文章分享模型,了解更多👉 模型_思维模型目录。刺激先行激活,后续认知更顺畅。 1 启动效应的应用 1.1 求职面试中对面试官的影响 背景:一家知名公司在招聘过程中发现,面试官对候选人的评价往往受到多种因素的影响…

【前端分享】CSS实现3种翻页效果类型,附源码!

使用 css 可以实现多种翻页效果&#xff0c;比如书本翻页、卡片翻转等。以下是两种常见的翻页效果实现&#xff1a; 效果 1&#xff1a;书本翻页效果 通过 transform 和 rotateY 实现 3D 翻页效果。 html 结构 <divclass"book"> <divclass"page pa…

vue使用rules实现表单校验——校验用户名和密码

编写校验规则 常规校验 const rules {username: [{ required: true, message: 请输入用户名, trigger: blur },{ min: 5, max: 16, message: 长度在 5 到 16 个字符, trigger: blur }],password: [{ required: true, message: 请输入密码, trigger: blur },{ min: 5, max: 1…

diy装机成功录

三天前&#xff0c;我正式开启了这次装机之旅&#xff0c;购入了一颗性能强劲的 i5-12400 CPU&#xff0c;一块绘图能力出色的 3060ti 显卡&#xff0c;还有技嘉主板、高效散热器、16G 内存条、2T 固态硬盘&#xff0c;以及气派的机箱和风扇&#xff0c;满心期待能亲手打造一台…