如何在 Docker 集线器上的标签下判断软件版本

How to tell the software version under a tag on Docker hub

我是 docker 的新手,我正在尝试找到一种方法来判断 docker 中心标记图像的版本。

例如,此处列出的 jenkins/jenkins:lts-latest 图像 https://hub.docker.com/r/jenkins/jenkins/tags/,实际上哪个图像版本会产生别名?我如何推断 jenkins repo 中的通讯员 dockerfile/branch?

我尝试了 docker 搜索,但我做不到。我还尝试在官方 Jenkins github docker 文件回购中找到线索:https://github.com/jenkinsci/docker,但我没有看到任何 bindung 标签或任何提示我来源的线索图片

另一个例子,我有一个 Kubernetes 集群,当我检查我的 Nexus pod 时,我同样看到图像被定义为 sonatype/nexus3:latest。 在这种情况下,至少我有 imageID: docker-pullable://sonatype/nexus3@sha256:434a2564aa64646464afaf.. 但我又一次不知道如何将它映射到软件的实际版本

只要我理解您的问题,您就是在尝试使用与您的软件版本完全相同的版本来标记 docker 图像。为此,我用来创建图像标签:

$ export VERSION="2.31-b19" $ docker tag "<user>/<image>:${VERSION}" "<docker_hub_user>/<repo>:latest"

如果不是这样。请多解释一下您的用例,以便我们为您提供更好的解决方法。

对于你问的repo,答案是否定的

在 dockerhub 上设置 repo 时,有两种选项供用户选择,如下所示:

1) 创建存储库:

这样,dockerhub只是为用户创建一个repo,用户需要在本地服务器上构建自己的镜像,打上标签,然后推送到dockerhub。

当用户将他的图像推送到 dockerhub 时,不会附加有关源版本的其他信息,因此无法从 dockerhub 获取任何源映射。

jenkins/jenkins,就是这种repo。

2) 创建自动构建

这样,dockerhub 将从 github 或 bitbucket 中获取代码,并在其云基础设施上构建映像,因此它会确切知道当前 docker 图片.

jenkins/jnlp-slave,就是这种repo。

然后,您可以在网页上点击它的Build Details,点击进入一个link,例如3.26-1-alpine,你会看到提到的日志 0a0239228bf2fd26d2458a91dd507e3c564bc7d0 是源代码提交。

综上所述,对于你在问题中提到的repo,它们不是Automated Build,所以你无法获得图像和源代码的地图,但如果你碰巧在docker枢纽是Automated Build以后&想知道地图的话可以。