нет соответствующего манифеста для windows / amd64 10.0.17134 в записях списка манифестов - PullRequest
0 голосов
/ 16 марта 2020

Когда я запускаю команду "docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1", чтобы извлечь ядро ​​do tnet для docker, я получаю следующее сообщение об ошибке.

docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1

3.1: Pulling from dotnet/core/aspnet

**no matching manifest for windows/amd64 10.0.17134 in the manifest list entries**

Моя ОС - Windows 10 Enterprise. Я попробовал «экспериментальные» настройки в docker, но это не сработало.

Docker: "нет соответствующих манифестов для windows / amd64 в записях списка манифестов"

1 Ответ

0 голосов
/ 19 марта 2020

Тег, на который вы ссылаетесь, называется тегом манифеста (также «мультиплатформенный» или «мультиархивный» тег). Это специальный тег, который можно определить, который клиент Docker будет динамически преобразовывать в базовый образ, соответствующий платформе вашего хоста Docker. Таким образом, вы можете использовать тот же тег на компьютере Linux с процессором ARM, и Docker попытается преобразовать этот тег в изображение, предназначенное для платформы Linux ARM.

В вашем случае вы Вы запускаете это на Windows. Windows имеет определенные c требования относительно совместимости между Windows версией хоста Docker и Docker контейнера. Эти требования опубликованы здесь: https://docs.microsoft.com/virtualization/windowscontainers/deploy-containers/version-compatibility. Клиент Docker обрабатывает это, пытаясь преобразовать тег в изображение, соответствующее вашей версии хоста Windows. Ваша Windows сборочная версия - 10.0.17134, то есть версия 1803. Эта версия вышла из строя (EOL) в ноябре прошлого года, поэтому вам, вероятно, следует обновить ее. Так как это EOL, тег 3.1 был обновлен, чтобы больше не предоставлять изображение, совместимое с 1803. И именно поэтому Docker выдает эту ошибку. Невозможно преобразовать тег манифеста в базовое изображение, которое соответствует вашей версии хоста, потому что нет связанного изображения.

Если вы действительно хотите, чтобы это работало, вы можете использовать тег 3.1-nanoserver-1803 вместо 3.1. Этот тег определяется платформой c, а не тегом манифеста. Таким образом, Docker не выполняет никакого разрешения, как это происходит с тегом manifest; это просто тянет изображение непосредственно. Но не рекомендуется использовать этот тег, потому что это изображение не обслуживалось (1803 - EOL, помните). Что вам действительно нужно сделать, это обновить вашу хост-систему до поддерживаемой версии.

...