Последно актуализиране 10 март 2020 г. 10:00 PST
Симптоми
Може да срещнете проблеми при използване на контейнери на Windows Server, ако хостващият контейнер или изображение на контейнер има актуализацията на защитата от 11 февруари 2020 г., освен ако и хостващият контейнер на Windows, и изображенията на контейнер на Windows Server, съответстват на актуализацията от 11 февруари 2020 г.
Симптомите при изпълнение или изграждане на контейнер могат да включват:
-
Когато изпълнявате командата „docker run“ или „docker build“, може да не получите резултат и може да спре да отговаря.
-
Вашият контейнер на Windows Server в Kubernetes не достига състояние „изпълняване“.
-
Получавате грешката „docker: грешка при отговор от daemon: контейнер <id> се сблъска с грешка по време на стартиране: неуспешно извикване на система на Windows: операцията за изчакване е изтекла. (0x102).“
-
Вашето 32-битово приложение или процеси, които се изпълняват в контейнера, може незабелязано да бъде неуспешно.
Причина
Този проблем е резултат от промяна на защитата, която е изисквала промяна на интерфейса между потребителски режим и режим на ядрото. Тъй като контейнерите, изолирани от процес, споделят режима на ядрото с хоста на контейнера и изображенията на контейнера, компонентът на потребителския режим без актуализацията е несъвместим и незащитен с новия защитен интерфейс на ядрото.
Решение и заобиколно решение
Добавихме нови напътствия за актуализиране на сайта Windows Container Docs в разделите Съвместимост на версии на контейнери на Windows и Актуализиране на контейнери на Windows Server. Това включва и подробни данни относно съвместимостта и матрицата на актуализацията. За информация относно специфичните проблеми, изброени в тази статия, вижте решението и смекчаването по-долу.
Решение за проблеми „не се изпълнява“ и „32-битови приложения са неуспешни незабелязано“ (симптом 1, 2, 3, 4):
На 18 февруари 2020 г. бяха пуснати актуализирани изображения на контейнери с цел адресиране на проблеми със симптомите (1, 2, 3, 4) в тази статия. Ако срещате тези проблеми, препоръчваме да актуализирате вашия хостващ контейнер до актуализацията на защитата от 11 февруари 2020 г. и изображенията на контейнери, издадени на 18 февруари 2020 г. Забележка Изданието от 18 февруари 2020 г. е само за изображения на контейнер. Актуализациите на защитата от 11 февруари 2020 г. все още са най-новите за хостващия контейнер.
За да разрешите проблема във вашата среда, изпълнете отново командата pull, за да актуализирате базовите изображения на ОС на Windows Server или приложимото изображение на контейнера, като например IIS или .NET, и изпълнете повторно вашия канал за автоматизация, за да изградите отново вашите контейнери чрез изображенията на контейнери с изображението на контейнер от 18 февруари 2020 г.
Важно Ако сте променили вашите етикети за извличане или автоматизацията като заобиколно решение за проблемите в тази статия, трябва да върнете промените си към предишните си етикети за извличане. Вече не би следвало да е необходимо да използвате конкретна версия.
Смекчаване за проблем „32-битови приложения са неуспешни незабелязано“ (симптом 4):
Ние силно препоръчваме да актуализирате хостващия контейнер до актуализацията на защитата от 11 февруари 2020 г., както е описано по-горе. Ако не можете да актуализирате хостващия контейнер до актуализациите на защитата от 11 февруари 2020 г., ще трябва да съгласувате версията на компилацията и ревизията на изображението на контейнера с версията на компилацията и ревизията на вашата операционна система за хостващия контейнер. За инструкции относно това как да проверите версията на вашия хостващ контейнер вижте тази статия. След като разполагате с версията на вашия хостващ контейнер, можете да извлечете версията на изображението на контейнера с помощта на следната команда (ще трябва да настроите базовото изображение на ОС на Windows Server и версията, както се прилага във вашата среда). Например, ако използвате контейнер на Windows Server Core:
docker pull mcr.microsoft.com/windows/servercore:<версията на вашия хостващ контейнер, като например 10.0.17763.1040>
Когато вашите версии на хостващия контейнер и изображението на контейнера съвпадат, би трябвало да можете да възобновите командите на контейнера, като например run или build.
Забележка Препоръчваме да промените вашите етикети за извличане или автоматизация само ако срещате приложения, които са неуспешни незабелязано.
Справочни материали
Списъкът по-долу показва версиите на Windows Server, за които поддържаме изображения на контейнери, заедно с номерата на версиите за актуализациите на защитата, издадени на 14 януари 2020 г. и 11 февруари 2020 г. и изданието само за изображение на контейнера от 18 февруари 2020 г. Изображенията на контейнери, издадени на 18 февруари 2020 г. и изброени по-долу, ще бъдат извлечени автоматично, ако не посочите версия в плаващите си етикети.
Версия на Windows Server (плаващ етикет) |
Издание на версия на актуализация за 14 януари 2020 г. |
Версия на актуализация за 11 февруари 2020 г. |
Версия на актуализация за 18 февруари 2020 г. |
Windows Server 2016 (ltsc2016) |
10.0.14393.3443 |
10.0.14393.3504 |
10.0.14393.3506 |
Windows Server, версия 1803 (1803) |
10.0.17134.1246 |
10.0.17134.1304 |
10.0.17134.1305 |
Windows Server 2019 (ltsc2019) Windows Server, версия 1809 (1809) |
10.0.17763.973 |
10.0.17763.1039 |
10.0.17763.1040 |
Windows Server, версия 1903 (1903) |
10.0.18362.592 |
10.0.18362.657 |
10.0.18362.658 |
Windows Server, версия 1909 (1909) |
10.0.18363.592 |
10.0.18363.657 |
10.0.18363.658 |
Ако използвате изображения на виртуална машина на пазара на Azure с контейнери, изображенията от февруари 2020 г. вече са налични. Не би трябвало да срещате проблемите или симптомите по-горе, ако използвате тези изображения. За повече информация вижте KB4540981.
За пълен списък с изображенията на контейнер на Windows вижте страницата Docker Hub тук.
За по-подробна информация относно контейнерите на Windows Server вижте https://aka.ms/containers.