Azure DevOps 托管代理未能拉取 windows:2004
Azure DevOps hosted-agent failed to pull windows:2004
当使用 Windows-2019
hosted agent (Agent installed with 1809 windows version -Microsoft Windows Server 2019 Datacenter) 作为代理规范时,我们无法拉取 mcr.microsoft.com/windows:2004
docker 图像。
异常:
我熟悉 (它在本地运行得很好)。
但是,由于 Docker Desktop 没有安装在代理上,我无法切换到 Windows 容器。此外,安装 Docker 桌面不是一个选项,因为需要重新启动。
目前,创建构建机器不是一个选项。
所以我的问题是:有办法从托管代理中提取 mcr.microsoft.com/windows:2004
docker 图像吗?
So my question is: There is a way to pull mcr.microsoft.com/windows:2004 docker image from the hosted agent?
恐怕没有这种方法可以从托管代理中提取 mcr.microsoft.com/windows:2004
docker 图像。
那是因为 Matching container host version with container image versions:
Windows Server containers and the underlying host share a single
kernel, the container’s base image must match that of the host. If the
versions are different, the container may start, but full functionally
isn't guaranteed.
换句话说,Windows需要主机OS版本匹配容器OS版本。如果你想 运行 一个基于更新的 Windows 构建的容器,请确保你有一个等效的主机构建。否则,您可以在新主机构建上使用 Hyper-V 隔离 运行 旧容器。
所以,我们无法从托管代理 windows-latest
或 windows-2019
中提取图像 windows:2004
(2004
) (1809
)。我们只能使用托管代理拉取图像 windows:1809
。
docker pull mcr.microsoft.com/windows/servercore:1809
但是,如果我使用托管代理拉取图像 windows:1903
,我将收到错误 no matching manifest for windows/amd64...
。为了验证我的回答,我使用了私有代理,托管在windows版本1903
(OS构建18362
),它工作正常。
总而言之,我们无法在托管代理 (1809) 上拉取 windows:2004 (2004) 映像。此请求的解决方法是使用私人代理。
顺便说一句,我已经用私人代理测试了中提到的那些解决方案。 switch to Linux containers
和 set the "experimental": true
都无法解决这个错误。
参考链接:
当使用 Windows-2019
hosted agent (Agent installed with 1809 windows version -Microsoft Windows Server 2019 Datacenter) 作为代理规范时,我们无法拉取 mcr.microsoft.com/windows:2004
docker 图像。
异常:
我熟悉
目前,创建构建机器不是一个选项。
所以我的问题是:有办法从托管代理中提取 mcr.microsoft.com/windows:2004
docker 图像吗?
So my question is: There is a way to pull mcr.microsoft.com/windows:2004 docker image from the hosted agent?
恐怕没有这种方法可以从托管代理中提取 mcr.microsoft.com/windows:2004
docker 图像。
那是因为 Matching container host version with container image versions:
Windows Server containers and the underlying host share a single kernel, the container’s base image must match that of the host. If the versions are different, the container may start, but full functionally isn't guaranteed.
换句话说,Windows需要主机OS版本匹配容器OS版本。如果你想 运行 一个基于更新的 Windows 构建的容器,请确保你有一个等效的主机构建。否则,您可以在新主机构建上使用 Hyper-V 隔离 运行 旧容器。
所以,我们无法从托管代理 windows-latest
或 windows-2019
中提取图像 windows:2004
(2004
) (1809
)。我们只能使用托管代理拉取图像 windows:1809
。
docker pull mcr.microsoft.com/windows/servercore:1809
但是,如果我使用托管代理拉取图像 windows:1903
,我将收到错误 no matching manifest for windows/amd64...
。为了验证我的回答,我使用了私有代理,托管在windows版本1903
(OS构建18362
),它工作正常。
总而言之,我们无法在托管代理 (1809) 上拉取 windows:2004 (2004) 映像。此请求的解决方法是使用私人代理。
顺便说一句,我已经用私人代理测试了switch to Linux containers
和 set the "experimental": true
都无法解决这个错误。
参考链接: