我们正在设置服务器来托管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:连接尝试失败,因为连接方在一段时间后没有正确响应时间或已建立的连接失败,因为已连接的主机无法响应。'
它试图获取的链接是互联网上的基本图像,但我认为注册表存储了完整的图像,那么是什么给出了?是否真的无法将基本图像存储在注册表中?
答案 0 :(得分:0)
做一些阅读我发现了这个:https://docs.docker.com/registry/deploying/#considerations-for-air-gapped-registries
某些图片,例如官方Microsoft Windows基本图片, 不可分发。这意味着当您按下图像时 其中一个图像到您的私人注册表,不可分发 图层不会被推送,但总是从他们的授权中获取 地点。这适用于连接互联网的主机,但不起作用 在空气密封的设置中。
然后,doc详细说明了如何设置注册表来存储不可分发的层,但他们也说要注意不可分发层的使用条款。
所以有两种可能的解决方案: