如何检查构建哪个版本的Docker映像

时间:2020-07-18 11:20:57

标签: docker

我在Artifactory中有一个码头工人形象。 如何检查什么是“基本映像版本”?

例如 我像这样基于docker文件创建的工件中的dockerimage

FROM test-image:v1.0.0
...

现在,在构建之后,如何找到此图像基于v1.0.0

我尝试做docker inspect <imagename>,但没有帮助我找到test-image的版本。 反正我能找到这个版本吗?

2 个答案:

答案 0 :(得分:3)

您可以使用docker image history来查看图像所组成的文件系统层。

例如,假设您有一个名为app的图片。

docker image history app

结果将如下所示。

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
7a85c25a7a6b        3 hours ago         /bin/sh -c #(nop)  CMD ["node" "index.js"]      0B                  
339d3cb45826        3 hours ago         /bin/sh -c #(nop) COPY dir:15f5040b90b2035eb…   471B                
d7c2ba41aed4        8 days ago          /bin/sh -c #(nop) WORKDIR /node/app             0B                  
da8751259bd7        8 days ago          /bin/sh -c #(nop)  EXPOSE 5000                  0B                  
25d4e098fa1b        8 days ago          /bin/sh -c #(nop)  ENV PORT=5000                0B                  
0e2e78467169        5 weeks ago         /bin/sh -c #(nop)  CMD ["node"]                 0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop)  ENTRYPOINT ["docker-entry…   0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop) COPY file:238737301d473041…   116B                
<missing>           5 weeks ago         /bin/sh -c set -ex   && savedAptMark="$(apt-…   9.58MB              
<missing>           5 weeks ago         /bin/sh -c #(nop)  ENV YARN_VERSION=1.22.4      0B                  
<missing>           5 weeks ago         /bin/sh -c ARCH= && dpkgArch="$(dpkg --print…   100MB               
<missing>           5 weeks ago         /bin/sh -c #(nop)  ENV NODE_VERSION=14.4.0      0B                  
<missing>           5 weeks ago         /bin/sh -c groupadd --gid 1000 node   && use…   333kB               
<missing>           5 weeks ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop) ADD file:57b431451a292755d…   55.3MB 

查看IMAGE列和第一个<missing>上方的条目,在本例中为0e2e78467169。这是新图像所基于的图像的ID。现在,您可以列出所有图像并找到对应的图像。

docker image ls | grep 0e2e78467169

示例输出:

node                         14-stretch-slim     0e2e78467169        5 weeks ago         165MB

这张(node:14-stretch-slim)是我用来从中构建新图片的图片。

答案 1 :(得分:1)

可以使用@Matus答案的更紧凑版本

String.join(", " list)

输出

(image=my_image docker inspect $(docker image history $image | awk '{print $1}' | grep -i -B 1 '<missing>' | head -1) | jq ".[].RepoTags")

以上命令基于docker历史记录的模式,因为我观察到历史记录在[ "ubuntu:latest" ] 第一次出现之前返回基本映像。