如何知道最新标记背后的Docker映像版本?

Ale*_*reS 5 version docker tensorflow

我正在使用张量流的两个docker图像(最新标签和最新gpu标签):

FROM tensorflow/tensorflow:latest-gpu

和:

FROM tensorflow/tensorflow:latest

为了将来没有惊喜,我想设置这两个图像的版本。

在docker hub上,我无法在标签页面中找到此信息:例如,latest将与1.8.0-gpu标签相对应。

您知道是否以及在哪里可以找到此信息吗?

谢谢,

亚历山大(Alexandre)

THE*_*rer 6

实际上有点牛粪,码头工人不做最起码的事情并报告这样的事情,不幸的是,我似乎找到的唯一解决方案是......哦,实际上是钓鱼:

转到图像网页(在我的情况下为 nigix)https://hub.docker.com/_/nginx 然后按标签选项卡,转到任何最新版本,然后复制 sha256 sum 然后按最新排序,然后向下滚动直到第一个编号版本和检查是否显示完全相同的 sha256

现在...... STILL捕捞后,有图书馆/ nginxit而来的,是肯定的事:

你可以验证你是否做对了,例如现在我设法发现 nginx:latest 实际上是 1.17.8,所以,我运行:

docker pull nginx:1.17.8
1.17.8: Pulling from library/nginx
bc51dd8edc1b: Pull complete
66ba67045f57: Pull complete
bf317aa10aa5: Pull complete
Digest:sha256:ad5552c786f128e389a0263104ae39f3d3c7895579d45ae716f528185b36bc6f
Status: Downloaded newer image for nginx:1.17.8
Run Code Online (Sandbox Code Playgroud)

然后我通过尝试拉最新来验证:

docker pull nginx:latest
latest: Pulling from library/nginx
Digest: sha256:ad5552c786f128e389a0263104ae39f3d3c7895579d45ae716f528185b36bc6f
Status: Downloaded newer image for nginx:latest
Run Code Online (Sandbox Code Playgroud)

你怎么看它实际上并没有拉任何东西,而 sha256 是完全一样的;)


Con*_*nst 3

您知道我是否可以以及在哪里可以找到此信息?

只是为了澄清一些事情。Docker 镜像周围可以有多个标签。仔细检查所述图像发现它们仅具有单个标签(仅latest),因此它们没有被额外标记。因此,从图像本身你无法推断出它们与哪个张量流版本相关。

但是,您还有其他选择:

  • 确保使用正确的“版本化”张量流图像的最简单方法latest是实际启动最新图像:

    docker run -it --rm -p 8888:8888 tensorflow/tensorflow:latest
    
    Run Code Online (Sandbox Code Playgroud)

    或者

    nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:latest-gpu
    
    Run Code Online (Sandbox Code Playgroud)

    然后,导航到给定的 url 链接,格式为:

    http://localhost:8888/?token=XXXX...
    
    Run Code Online (Sandbox Code Playgroud)

    并在 jupyter 中创建新笔记本File->New Noteboot->Python2,然后通过给出以下命令来检查 TensorFlow 版本:

    import tensorflow as tf
    print tf.VERSION
    
    Run Code Online (Sandbox Code Playgroud)

    或者

    import tensorflow as tf
    tf.__version__
    
    Run Code Online (Sandbox Code Playgroud)

    然后运行它。请注意,在我的情况下,latest标签响应是:1.8.0,但是如果您latest不久前提取了图像并且同时没有更新(或在将来阅读此内容),您得到的版本可能与此不同。

  • 一旦你获得了正在使用的版本,你可以简单地导航到你在帖子中提到的标签页面1.8.0以获取正确的标签(在我的例子中,分别是和1.8.0-gpu(因为我从标签中获得了Python2 latest)。
  • 关于从后缀中选择正确标签的简短说明(适用于 1.8.0 版本):
    • 在大多数情况下,您将选择以下稳定版本映像之一:
      • 1.8.0-gpu-py3 - 稳定版本图像 gpu python 3
      • 1.8.0-py3 - 稳定版本镜像 cpu python 3
      • 1.8.0-gpu - 稳定版本图像 gpu python 2
      • 1.8.0 - 稳定版本映像 cpu python 2 <-- 在我的情况下,这是 cpu 的正确标签latest
    • 但是,在某些特殊情况下,您可能会选择开发或发布候选版本:
      • 1.8.0-devel-gpu-py3 - 开发版本 gpu python 3
      • 1.8.0-devel-gpu - 开发版本 gpu python 2
      • 1.8.0-devel-py3 - 开发版本 cpu python 3
      • 1.8.0-devel - 开发版本 cpu python 2
      • 1.8.0-rcN-devel-gpu-py3 - 开发版本候选 gpu python 3
      • 1.8.0-rcN-devel-py3 - 开发版本候选 cpu python 3
      • 1.8.0-rcN-gpu-py3 - 稳定版本候选 gpu python 3
      • 1.8.0-rcN-py3 - 稳定版本候选 cpu python 3
      • 1.8.0-rcN-gpu - 稳定版本候选 gpu python 2
      • 1.8.0-rcN - 稳定版本候选 cpu python 2

  • 这是对此特定图像的超级特定答案,让 shell 或 python 脚本从 CLI 解析上述标签 _HTML_ 页面来尝试确定 _latest_ 标签对应的版本不是更好吗? (3认同)