Docker注册表可以存储基本映像吗?

时间:2017-10-11 15:24:27

标签: docker-registry

我们正在设置服务器来托管Windows容器。 此服务器从我们设置的内部Docker注册表中获取图像。 问题是服务器无法下拉图像,因为它试图从互联网上获取基本图像,而服务器没有互联网连接。

我找到了troubleshooting script from Microsoft并注意到一段:

  

至少有一个微软/ windowsservercore'要么   '微软/ nanoserver'应该安装

     
      
  • 尝试使用docker pull microsoft / nanoserver或docker pull   用于提取Windows容器映像的microsoft / windowsservercore
  •   

由于我的电脑有互联网连接,我下载了这些图像,将它们推送到注册表,但是在新服务器上拉图像失败了:

  

事件ID' 1'在Source' docker'无法找到。本地计算机可能没有必要的注册表信息或消息DLL文件来显示消息,或者您可能没有权限访问它们。以下信息是事件的一部分:'启动层下载时出错:获取https://go.microsoft.com/fwlink/?linkid=860052:拨打tcp 23.207.173.222:443:connectex:连接尝试失败,因为连接方在一段时间后没有正确响应时间或已建立的连接失败,因为已连接的主机无法响应。'

它试图获取的链接是互联网上的基本图像,但我认为注册表存储了完整的图像,那么是什么给出了?是否真的无法将基本图像存储在注册表中?

1 个答案:

答案 0 :(得分:0)

做一些阅读我发现了这个:https://docs.docker.com/registry/deploying/#considerations-for-air-gapped-registries

  

某些图片,例如官方Microsoft Windows基本图片,   不可分发。这意味着当您按下图像时   其中一个图像到您的私人注册表,不可分发   图层不会被推送,但总是从他们的授权中获取   地点。这适用于连接互联网的主机,但不起作用   在空气密封的设置中。

然后,doc详细说明了如何设置注册表来存储不可分发的层,但他们也说要注意不可分发层的使用条款。

所以有两种可能的解决方案:

  1. 确保您可以存储不可分发的图层,然后重新配置注册表以存储不可分发的图层
  2. 将服务器连接到互联网,下载基本影像,然后使用这些影像