Последна актуализация 10 март 2020 г. 10:00 ч. PST
Симптоми
Може да срещнете проблеми при използването на контейнери на Windows Server, ако хостът на контейнера или изображението на контейнера има актуализацията на защитата от 11 февруари 2020 г., освен ако както хостът на контейнера на Windows, така и изображенията на контейнерите на Windows Server са съпоставени с актуализацията на защитата от 11 февруари 2020 г.
Симптомите при изпълнение или създаване на контейнер може да включват:
- Когато изпълните командата "docker run" или "docker build", е възможно да не получите резултат и тя може да спре да отговаря.
- Контейнерът на Windows Server в Kubernetes не достига състоянието на изпълнение.
- Получавате грешката "docker: Error response from daemon: <container> id the error during Start: failure in a Windows system call: Времето на изчакване на операцията изтече. (0x102)".
- Вашето 32-битово приложение или процеси, изпълнявани в контейнера, може да са неуспешни без предупреждение.
Причина
Този проблем е резултат от промяна на защитата, която изискваше промяна в интерфейса между потребителски режим и режим на ядрото. Тъй като изолираните от процеси контейнери споделят режима на ядрото с хоста на контейнера и изображенията на контейнера, компонентът в потребителски режим без актуализацията е както несъвместим, така и незащитен с новия защитен интерфейс на ядрото.
Решение и заобиколно решение
Добавихме нови указания за актуализиране на сайта "Документи на контейнери на Windows", в разделите за съвместимост на версия на контейнер на Windows и актуализиране на контейнери на Windows Server. Това включва също подробности за съвместимостта на актуализациите и матрицата. За информация относно конкретните проблеми, изброени в тази статия, вижте решението и смекчаването им по-долу.
Решение за проблеми от типа "не се изпълнява" и "32-битовите приложения безшумно се провалят" (симптом 1, 2, 3, 4):
На 18 февруари 2020 г. бяха пуснати актуализирани изображения на контейнери за справяне с проблемите със симптоми (1,2,3,4) в тази статия. Ако се сблъскате с тези проблеми, препоръчваме да актуализирате хоста на контейнера си до изданието на актуализацията на защитата от 11 февруари 2020 г. и изображенията на контейнера, издадени на 18 февруари 2020 г. Забележка Изданието от 18 февруари 2020 г. е само за изображения в контейнер. Актуализациите на защитата от 11 февруари 2020 г. все още са най-новите за хоста на контейнера.
За да разрешите проблема във вашата среда, изпълнете отново командата за изтегляне, за да актуализирате изображенията на базовата ОС на Windows Server или приложимото изображение на контейнер, като например IIS или .NET, и изпълнете отново конвейера за автоматизация, за да създадете отново вашите контейнери, като използвате изображенията на контейнера с изображението на контейнера от 18 февруари 2020 г.
Важно Ако сте променили етикетите за извличане или автоматизацията като заобиколно решение за проблемите в тази статия, трябва да върнете промените към предишните етикети за извличане. Вече не би трябвало да се налага да използвате конкретна версия.
Смекчаване на проблема "32-битови приложения тихо се провалят" (симптом 4):
Настоятелно препоръчваме да актуализирате хоста на контейнера към актуализацията на защитата от 11 февруари 2020 г., както е описано по-горе. Ако не можете да актуализирате хоста на контейнера към актуализациите на защитата от 11 февруари 2020 г., ще трябва да съпоставите версията на компилацията и редакцията на изображението на контейнера с версията на компилацията и версията на редакцията на вашата операционна система на контейнер. За инструкции как да проверите версията на хоста на контейнера вижте тази статия. След като имате версията от хоста на контейнера, можете да издърпате версията на изображението на контейнера с помощта на следната команда (ще трябва да настроите базовия образ и версия на ОС на Windows Server, както се прилага във вашата среда). Например ако използвате контейнер Windows Server Core:
docker pull mcr.microsoft.com/windows/servercore:<version your container host, such as 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.