bash – 如何检查我的本地码头影像是否过时,不要从别的地方推?

前端之家收集整理的这篇文章主要介绍了bash – 如何检查我的本地码头影像是否过时,不要从别的地方推?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一个Docker容器中,在Coreos服务器上运行一个应用程序.假设这是从dockerhub从https://hub.docker.com/r/myimages/myapp拉出来的.

现在我想定期检查应用程序容器的dockerhub映像是否已更新,以查看本地运行的映像是否在后面.

与远程图像相比,检查本地码头影像是否过时最有效的方法是什么?到目前为止,我发现的所有解决方案都是bash脚本或外部服务,推动更新.我想找到一个尽可能靠近Docker的解决方案,并且不想从别的地方发送通知(提醒服务器更新的图像).

Docker Hub有一个 API available

您应该能够获取标签列表,并从那里获得清单详细信息

编辑

我做了一些挖掘,看起来他们没有暴露任何形式的校验和,它的清单或组成的层.

我找到的最接近的事情是创建日期…如果你想让远程安全的东西,我不会建议使用.

无论如何,您首先需要获取访问令牌

curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/ubuntu:pull"

从响应中提取令牌,然后可以加载图像版本的清单

curl --header "Authorization: Bearer $TOKEN" https://index.docker.io/v2/library/ubuntu/manifests/latest

看看json返回的历史对象,你会发现一个创建的属性.

然后你可以得到你的本地图像创建日期

docker inspect --format "{{json .Created}}" ubuntu:latest

比较两个,并且…

猜你在找的Bash相关文章