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

比较两个,并且…

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...