簡體   English   中英

pull nanoserver:1903時,“清單列表項中未知的清單沒有匹配清單”

[英]'No matching manifest for unknown in the manifest list entries' when pull nanoserver:1903

我想為Windows 10 Pro上的Windows容器拉出microsoft-windows-nanoserver

我的環境:

Docker Desktop
Version: 2.0.0.3 (31259)
Channel: stable
Sha1: 8858db33c8692b69de9987a5d672798d778735b2
OS Name: Windows 10 Pro
Windows Edition: Professional
Windows Build Number: 17763

Client: Docker Engine - Community
 Version:   18.09.2
 API version:   1.39
 Go version:go1.10.8
 Git commit:6247962
 Built: Sun Feb 10 04:12:31 2019
 OS/Arch:   windows/amd64
 Experimental:  false

Server: Docker Engine - Community
 Engine:
  Version:  18.09.2
  API version:  1.39 (minimum version 1.24)
  Go version:   go1.10.6
  Git commit:   6247962
  Built:Sun Feb 10 04:28:48 2019
  OS/Arch:  windows/amd64
  Experimental: true

奇怪的是:

拉動1803可以:

C:\>docker pull mcr.microsoft.com/windows/nanoserver:1803
1803: Pulling from windows/nanoserver
e46172273a4e: Pull complete
8f7ed89f9e35: Pull complete
Digest: sha256:bc5c1878a69c4538d55bc74e50b7dbafafff1a373120e624e8bad646a0a505dc
Status: Downloaded newer image for mcr.microsoft.com/windows/nanoserver:1803

但是拉1903不行:

C:\>docker pull mcr.microsoft.com/windows/nanoserver:1903
1903: Pulling from windows/nanoserver
no matching manifest for unknown in the manifest list entries

我注意到的是,它的dockerhub中有一個表:

Tags    Architecture    Dockerfile  OsVersion   CreatedTime LastUpdatedTime
1903    multiarch   No Dockerfile   10.0.18362.239  05/21/2019 18:01:07 07/09/2019 18:29:39
1803    multiarch   No Dockerfile   10.0.17134.885  10/05/2018 22:06:26 07/09/2019 17:41:59

OsVersion是指docker docker host os's version還是my contaner's distrubtion's version 您可以看到我的Windows主機操作系統是17763 ,這可能是我無法拉1903或其他原因的原因?

另外,如果以上猜測是正確的,那么為什么會發生這種情況? 據我所知,容器只是共享主機的內核,不應該關心的操作系統版本,同時, docker for windowswindows10使用hyper-v它為什么關心我的Windows操作系統的版本?

我真的不想一次又一次升級我的操作系統,如果我想使用新版本的容器...我希望我的猜測是錯誤的,我錯過了什么嗎?

我找到答案。

  1. 執行docker pull mcr.microsoft.com/windows/nanoserver:1903 ,我發現C:\\Users\\user\\AppData\\Local\\Docker\\log.txt有一個調試日志,它說:

    調試:基於Windows版本10.0.18362的映像與10.0.17763主機不兼容

    因此,它證實了我的猜測,我的問題發生是因為我使用的是舊版Windows 10,必須將10.0.18362.239升級到至少10.0.18362.239才能使用nanoserver:1903

  2. 之所以必須這樣做,我看到了微軟官方的解釋

    Windows Server 2016和Windows 10周年更新(均為版本14393)是最早可以構建和運行Windows Server容器的Windows版本。 使用這些版本構建的容器可以在較新的版本(例如Windows Server 1709版)上運行,但是在開始之前需要了解一些事項。

    在改進Windows容器功能時,我們不得不進行一些可能影響兼容性的更改。 較舊的容器將在具有Hyper-V隔離的較新主機上運行相同的容器,並使用相同(較舊)的內核版本。 但是,如果要基於更新的Windows版本運行容器,則只能在更新的主機版本上運行容器。

    從看來,微軟仍在改善Windows容器功能的過程中,因此,如果需要使用基於較新Windows的容器,我們必須升級主機Windows操作系統(我想可能也與某些Hyper-V升級有關)。

非常感謝您分享答案! 我遇到了同樣的問題,但是在使用其他圖像時,我浪費了大量時間試圖找到有關此錯誤的任何信息,直到達到此為止。

我希望其他用戶可以給您投票,因為這確實有用:)。

暫無
暫無

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

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