当前位置: 首页 > 面试题库 >

从注册表获取最新的Docker映像创建日期

何飞翰
2023-03-14
问题内容

如何获得注册表中存在的Docker映像的最新创建日期?最近,我们遇到一个问题,就是我们的某些集群从属服务器上的Docker镜像没有自动拉出,并且该项目在非常陈旧的容器环境中运行。因此,我希望每天运行一次cron脚本,以检查提取的Docker映像是否比注册表Docker映像早24小时。


问题答案:

我知道的最简单的方法是编写一个简单的脚本,该脚本使用Docker Registry REST
API
并根据需要对结果进行基本操作。

这是Python 3中的一些示例代码,可以在我使用的仓库中执行此操作:

import requests

repo_tag_url = 'https://hub.docker.com/v2/repositories/streamsets/datacollector/tags'
results = requests.get(repo_tag_url).json()['results']
for repo in results:
    print(repo['name'], repo['last_updated'])

以我的示例为例,它返回

3.0.0.0-SNAPSHOT 2017-10-23T14:43:29.888877Z
latest 2017-10-05T23:05:03.636155Z
2.7.2.0 2017-10-05T22:50:53.269831Z
2.7.2.0-RC5 2017-10-05T19:34:19.523402Z
2.7.2.0-RC4 2017-10-05T02:05:52.522323Z
2.7.2.0-RC3 2017-10-04T00:08:02.929502Z
2.8.0.0-SNAPSHOT 2017-10-03T21:55:08.042479Z
2.7.2.0-RC2 2017-10-03T19:20:56.642686Z
2.7.2.0-RC21 2017-09-30T21:42:27.924190Z
2.7.2.0-RC1 2017-09-30T17:34:14.409320Z


 类似资料:
  • 问题内容: 我在机器上安装了docker,并且在其中安装了docker的minikube上,所以可能我有两个在不同VM上运行的docker实例 我建立一个图像并对其进行标记,然后将其推入本地注册表,并成功将其推入,我也可以从注册表中将其拉出,也可以在运行curl以获取标签列表时得到结果,这就是我所做的 以上所有步骤均正常进行,没有任何问题。 我的问题是当我运行minikube并尝试在其中的本地注册

  • 我尝试在本地使用kubernetes。因此我安装了minikube。当我创建部署对象时,pods无法在minikube docker注册表中找到图像,并且pods的状态显示为< code>ErrImageNeverPull。为了解决这个问题,我遵循了以下步骤: < li> < Li > < code > eval $(minikube docker-env) < li >我在deployment.

  • 问题内容: 我正在使用docker Registry v1,并且有兴趣迁移到较新的版本v2。但是我需要某种方式来获取注册表中存在的图像列表。例如,对于注册表v1,我可以执行GET请求,结果是: 但是我在官方文档中找不到类似于在注册表中获取映像列表的内容。有人知道在新版本v2上执行此操作的方法吗? 问题答案: 对于最新(截至2015年7月31 日)的Registry V2版本,您可以从DockerH

  • 问题内容: 我需要使用哪些CLI命令来检查我的私有Docker注册表中的映像是否比服务器上当前正在运行的映像新版本? 例如,我有一个运行的容器 我想知道它是否过时了。 问题答案: 布朗尼指出了@mbarthelemy和@amuino,他们使我步入正轨。由此,我提出了以下bash脚本,其他人可能会觉得有用。它只是检查注册表上的标记是否与当前正在执行的容器不同。

  • 我在Linode上有一个K8s集群和另一个用于操作的VM。 我已经安装了Docker 注意:我还没有在这个虚拟机上安装迷你库贝。 我可以构建我的映像,但无法将其从本地注册表拉到k8s pod。 以下是我已经做过的事情 创建docker镜像并将其推送到本地注册表 从图像中运行docker容器,但不会在K8s中被拉入 创建“regcred”secret并在部署yaml中使用它 创建映像并使用VM的IP