Moby: Docker命令检查本地容器映像是否过时?

创建于 2017-02-10  ·  3评论  ·  资料来源: moby/moby

可以说与dockerhub上的远程映像相比。 我一直在寻找一种规范的方法来执行此操作,但是我只能找到脆弱的bash脚本之类的东西。 没有执行此检查的官方推荐方法。 堆栈溢出问题还没有得到任何确定的答案。 这个问题也没有。

能够验证本地映像与远程映像相比是否过时,这对于开发和登台环境非常有用(docker-cloud甚至允许您为此设置自动更新容器)。 我知道有可能在成功建立完整映像之后使用Webhook触发重新拉动,但可以说我希望能够从服务器启动检查,而不必让它监听。

我是否假设当前没有可用的docker命令来执行此检查是对的,还是我错过了针对此问题的明显的docker native解决方案?

aredistribution areimages kinquestion

最有用的评论

但是,“盲目更新”与仅收到更改了远程映像的

所有3条评论

不,目前没有内置选项可检查图像是否“过时”。 自动更新容器的实际情况因使用案例而有所不同。 “盲目”更新到最新的图像并非易事。 例如, some-image:latest可以导致_completely_不同的图像(例如ubuntu:latest指最新的“ LTS”发行版,有时从14.04切换到16.04),同时some-image:1.2.3 “看起来”像SemVer(ish)标签,但不能保证,因为由图像作者决定“标签”方案及其含义(基本上,标签只是免费的)形式“标签”)。

因此,建议对容器使用不可变的标识符(例如ubuntu<strong i="9">@sha256</strong>:aabbbcccddd ); 这样您就可以_test_您正在运行的确切映像版本,并保证它是在质量检查流程中测试过的_same_版本。

综上所述,有一些选择。

  • 当使用docker compose ,您可以docker-compose pull拉取组成堆栈中使用的所有图像的最新版本
  • _building_ images时,您可以docker build --pull .....强制拉动FROM定义的图像,然后再开始构建
  • 使用服务时; docker service update --force --image foo:bar <servicename>解析指定的foo:bar映像的最新版本,并将服务的所有实例“固定”到该版本

我希望这回答了你的问题。 请记住,GitHub问题跟踪器并非旨在作为一般支持论坛,而是用于报告错误和功能请求。 对于其他类型的问题,请考虑使用以下一种:

我将关闭此问题,因为这不是错误,但可以随时继续进行对话👍

但是,“盲目更新”与仅收到更改了远程映像的

确实。 一种稳定的机制(通过这种机制,人们无需每天都重新下载整个容器)就可以检测到容器的更新,这真是太棒了。

安全更新非常重要,缺少此功能并不能使其更容易保持最新状态。

此页面是否有帮助?
0 / 5 - 0 等级