Posts

Showing posts from June, 2023

how to get docker image id

Image
get running container id shell command containerId= `docker ps -a| grep bryce-demo | awk '{print $1}' ` if grep match multiple result , you can use this command  containerId= `docker ps -a| grep bryce-demo | head -1|awk '{print $1}' ` head -1 mean get the head first 1 ,  tail -1 get the last 1. containerId=`docker ps -aq --filter name=bryce-demo`   get image id imageId=`docker images |grep -i $dockerHub/$namespace/$jobname:$tag | head -1 |awk '{print $3}' ` imageId=`docker images -q --filter reference=$dockerHub/$namespace/$jobname:$tag` reference docker docs

如何通过shell和grep获取docker容器或镜像的id

Image
什么是grep Linux grep 命令用于查找文件里符合条件的字符串。 grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。 入门参考: 菜鸟教程:grep命令 什么是awk awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。 awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。 入门参考: awk入门教程–阮一峰 通过grep和awk获取相关docker容器id 通常,在编写构建脚本和运维脚本中需要获取宿主机动态运行的docker容器id和镜像id,这些id在每一个宿主机是不一样的,但是我们往往会使用 --name  去命名容器,镜像也有名称和tag,利用这些命名,加上构建脚本的变量,我们可以很简单就写出重用性高的构建脚本. 这里再唠叨一下,通过名称匹配也会有风险,就是命名过于相似的时候,通常命名的会在特定容器上有特定的后缀,避免同shell匹配的时候出错,如果删除了不该删除的文件或者容器,尤其是生产环境,如果出错就麻烦大了,linux上可没有 ctrl+z ,所以不要过于迷恋这种通过匹配查找的脚本,上线之前需要再三测试. 获得docker容器id docker pa -a    // 列举运行中的容器 通常写法: containerId= `docker ps -a| grep bryce-demo | awk '{print $1}' ` 上述代码通过...