簡體   English   中英

Azure DevOps 托管代理未能拉取 windows:2004

[英]Azure DevOps hosted-agent failed to pull windows:2004

當使用Windows-2019 托管代理(安裝了 1809 windows 版本的代理 - Microsoft Windows Server 2019 Datacenter )作為代理規范時,我們無法拉取mcr.microsoft.com/windows:2004鏡像。

例外:

在此處輸入圖片說明

我熟悉這個解決方案(它在本地工作得很好)。 但是,由於 Docker Desktop 沒有安裝在代理上,我無法切換到 Windows 容器。 此外,安裝 Docker Desktop 不是一個選項,因為需要重新啟動。

目前,創建構建機器不是一個選項。

所以我的問題是:有一種方法可以從托管代理中提取mcr.microsoft.com/windows:2004映像嗎?

所以我的問題是:有一種方法可以從托管代理中提取 mcr.microsoft.com/windows:2004 docker 映像嗎?

恐怕沒有這樣的方法可以從托管代理中提取mcr.microsoft.com/windows:2004映像。

那是因為將容器主機版本與容器映像版本匹配

Windows Server 容器和底層主機共享一個內核,容器的基本映像必須與主機的基本映像相匹配。 如果版本不同,容器可能會啟動,但不能保證功能齊全。

換句話說,Windows 要求主機操作系統版本與容器操作系統版本相匹配。 如果要運行基於較新 Windows 版本的容器,請確保您具有等效的主機版本。 否則,您可以使用 Hyper-V 隔離在新主機版本上運行舊容器。

因此,我們無法從托管代理windows-latest OR windows-2019 ( 1809 ) 中提取圖像windows:2004 ( 2004 )。 我們只能使用托管代理拉取圖像windows:1809

docker pull mcr.microsoft.com/windows/servercore:1809

在此處輸入圖片說明

但是,如果我使用托管代理拉取圖像windows:1903 ,我將收到錯誤no matching manifest for windows/amd64... 為了驗證我的答案,我使用了托管在 Windows 版本1903 (操作系統版本18362 )上的私有代理,它工作正常。

總之,我們無法在托管代理 (1809) 上拉取 windows:2004 (2004) 映像。 此請求的解決方法是使用私有代理。

順便說一句,我已經與私人代理一起測試了您在問題中的鏈接中提到的那些解決方案。 無論是switch to Linux containers還是set the "experimental": true都可以解決這個錯誤。

參考鏈接:

Microsoft Windows 版本列表

無法從微軟拉取圖像

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM