docker高阶技巧之 --format 实现格式化输出内容

897 阅读1分钟

我们在使用dockers的过程中,有时需要格式化输出的内容,以便后续脚本自动化处理,通常的话我们会用到 awksedgrep等命令来实现,但是那样有点麻烦且不优雅,于是我想有没有更好的,更优雅的方式实现docker标准输入输出的格式化呢,

比如我们想看dockerversion使用docker version发现出来的是很多条字段,如何获取类似 1.2.1 的版本号呢?

通过 docker version --help 命令 (随便选的version 字段,也可以换成别的命令哈)发现了 --format 这个好东西

Usage:  docker version [OPTIONS]

Show the Docker version information

Options:
  -f, --format string       Format the output using the given Go template
      --kubeconfig string   Kubernetes config file

我们知道 dockergo语言写的,结合看到上面的提示,于是我们去研究了一下Go语言的template,下面开始实操

如:格式化输入容器ID作为docker rm的入参,实现批量删除docker容器

docker ps -a --format="{{ .ID }}" | xargs docker rm

如:过滤Version,仅输出version字符串

docker version --format='{{ .Client.Version }}'

那到这小伙伴可能要问了,你怎么知道他format里面的字段是什么呢,那么就有下面的命令了,意思是输出整串json字符串,你去试了就知道了

docker version --format='{{json .}}

那你要问问为什么要用json字段,那你属实是高手,
就写这么多了,有看不懂的多多思考~ (或者来跟我交流也可以haha)