Під час використання Windows Server контейнерів у разі випуску оновлення системи безпеки від 11 лютого 2020 р. можуть виникати проблеми

Застосовується до
Windows Server 2016, all editions Windows Server 2019, all editions Windows Server version 1803 Windows Server version 1809 Windows Server, version 1903, all editions Windows Server, version 1909, all editions

Останнє оновлення 10 березня 2020 р. 10:00 за тихоокеанським часом

Ознаки

Проблеми з використанням контейнерів Windows Server можуть виникати, якщо хост контейнера або образ контейнера містить оновлення системи безпеки від 11 лютого 2020 року, якщо хост-контейнер Windows і Windows Server образи контейнера не збігаються з оновленням системи безпеки від 11 лютого 2020 року.

Наслідки під час запуску або створення контейнера можуть включати такі ознаки:

  1. Під час виконання команди "Docker Run" або ""Docker build" ви можете не отримувати вихідні дані, а потім перестати відповідати.
  2. Ваш Windows ServerWindows ServerContainer в Kubernetes не досягає стану "running".
  3. З'являється повідомлення про помилку "docker: Error response from daemon: <container id> сталася помилка під час запуску системного виклику Windows: помилка операції очікування вичерпано. (0x102)».
  4. 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>

Після збігу версій хоста контейнера й образу контейнера ви зможете відновити команди контейнера, наприклад виконати або побудувати.

Примітка Ми рекомендуємо змінювати теги вилучення або автоматизацію, лише якщо ви зіткнулися з непомітними збоями програмами.

Посилання

Нижче перелічено Windows Server версій, для яких ми підтримуємо образи контейнерів, а також номери версій оновлень системи безпеки, випущених 14 січня 2020 року та 11 лютого 2020 року, а також лише образу контейнера від 18 лютого 2020 року.  Наведені нижче зображення контейнерів, випущені 18 лютого 2020 року, буде завантажено автоматично, якщо ви не вкажете версію в рухомих тегах.

Version of Windows ServerWindows Server (floating tag) Оновлена версія від 14 січня 2020 року Версія оновлення за 11 лютого 2020 р. Версія оновлення за 18 лютого 2020 р.
Windows ServerWindows Server 2016 (ltsc2016) 10.0.14393.3443 10.0.14393.3504 10.0.14393.3506
Windows ServerWindows Server, версія 1803 (1803) 10.0.17134.1246 10.0.17134.1304 10.0.17134.1305
Windows ServerWindows Server 2019 (ltsc2019)
Windows ServerWindows Server, версія 1809 (1809)
10.0.17763.973 10.0.17763.1039 10.0.17763.1040
Windows ServerWindows Server, version 1903 (1903) 10.0.18362.592 10.0.18362.657 10.0.18362.658
Windows ServerWindows Server, версія 1909 (1909) 10.0.18363.592 10.0.18363.657 10.0.18363.658

Якщо ви використовуєте образи Azure віртуальних машин Marketplace з контейнерами, то вже зараз доступні зображення за лютий 2020 р. Під час використання цих зображень ви не повинні зіткнутися з наведеними вище проблемами або симптомами.  Додаткові відомості див. в KB4540981.

Повний список образів контейнерів Windows можна знайти на сторінці Docker Hub тут.

Для отримання більш детальної інформації про Windows Server контейнери, будь ласка, перегляньте https://aka.ms/containers.