【问题标题】:Cacheable Docker image for Azure Container InstancesAzure 容器实例的可缓存 Docker 映像
【发布时间】:2018-05-31 17:39:25
【问题描述】:

我正在尝试使用 Azure 容器实例,但我在 long 拉取图像时遇到了问题。 ACI 拉取我的镜像大约需要 3 分钟。

我检查了Troubleshooting guide,上面写着:

为确保最快的 Windows 容器启动时间,请使用以下两个映像的三个最新版本之一作为基础映像: microsoft/windowsservercore 或 microsoft/nanoserver

按照故障排除指南中的建议,我的图像非常简单,并且基于 microsoft/windowsservercore:ltsc2016。这是Dockerfile 和cirrusci/windowsservercore:2016 image itself。

我可以看到,如果我只是尝试启动microsoft/windowsservercore:ltsc2016,启动它只需要大约 20 秒。所以我的猜测是microsoft/windowsservercore:ltsc2016 确实被缓存了,但不是文档声称的最新摘要。我想知道是否有任何方法可以找出 ACI 缓存的图像的确切摘要?

注意:我已尝试将映像从 Docker Hub 移动到与 suggested 位于同一区域的 Azure 容器注册表。它没有多大帮助。拉取图像仍然大约 3 分钟。

【问题讨论】:

标签: azure docker azure-container-service azure-container-registry azure-container-instances


【解决方案1】:

因此,如果您将 Dockerfile 的 Powershell 部分注释掉,那么它会创建一个没有对基础进行任何更改的容器,这需要 20 秒还是 3 分钟?

如果它在 20 秒内拉动,那么只是您的文件系统更改导致速度变慢,但如果它需要 3 分钟,那么这将证明 Azure 有一些缓存容器准备就绪,您最好不要启动这些基本容器之一,然后直接在其上调用您的 powershell 脚本。看起来该脚本会运行得很快。

这也将让您完全不用注册。

【讨论】:

  • 我能够将图像最小化为在microsoft/windowsservercore:ltsc2016 之上只有一层,即 400Mb。在这种情况下,它仍然拉动了将近 90 秒(最初 3 分钟在microsoft/windowsservercore:ltsc2016 之上有几层)。它好多了,但对我来说似乎还是有点太慢了。
  • 这是一个很好的改进,我将尝试使用基本的 20 秒基本容器和 powershell 安装来让我的运行更快,不能比他们在 6 分钟拉时刻。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多