Docker:如何使用--format打印字段的最后n个字符

问题描述

我正在尝试编写一个docker格式化程序,以使docker container ls的输出更具可读性。我想截断“图像”字段,以便仅打印最后的n个字符(我处理的某些图像具有很长的路径)。

例如:如何修改{{.Image}},以使输出来自此:

docker container ls --format "table {{.ID}}\t{{.Image}}"
43b15196a114        nginx:1.17.2-alpine
5cfb448d2aa5        this/container/has/a/very/long/path/elasticsearch:6.8.0

对此:

43b15196a114        nginx:1.17.2-alpine
5cfb448d2aa5        th/elasticsearch:6.8.0

解决方法

docker container ls --format 'table {{.ID}}\t{{with $i:=(print .Image)}}{{if le (len $i) 20}}{{$i}}{{else}}{{slice $i (slice $i 20|len)}}{{en
d}}{{end}}'

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...