我在Artifactory中有一个码头工人形象。 如何检查什么是“基本映像版本”?
例如 我像这样基于docker文件创建的工件中的dockerimage
FROM test-image:v1.0.0
...
现在,在构建之后,如何找到此图像基于v1.0.0
我尝试做docker inspect <imagename>
,但没有帮助我找到test-image
的版本。
反正我能找到这个版本吗?
答案 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"
]
第一次出现之前返回基本映像。