Последнее обновление 10 марта 2020 г. 10:00 по времени
Проблема
При использовании контейнеров Windows Server могут возникнуть проблемы, если узел контейнера или образ контейнера имеют обновление для системы безопасности от 11 февраля 2020 г., если только образы контейнеров Windows и Windows Server не совпадают с обновлением безопасности от 11 февраля 2020 г.
При запуске или создании контейнера могут возникать следующие симптомы:
- При выполнении команды "docker run" или "docker build" вы можете не получить выходные данные, и они могут перестать отвечать на запросы.
- Контейнер Windows Server в Kubernetes не достигает состояния "выполняется".
- Появляется сообщение об ошибке docker: error response from daemon: container <ided> errored во время запуска: сбой в системном вызове Windows: истекло время ожидания операции ожидания. (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 г. по-прежнему являются последними для узла контейнера.
Чтобы устранить эту проблему в вашей среде, повторно выполните команду 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:<version your container host, such as 10.0.17763.1040>
После сопоставления версий узла контейнера и образа контейнера вы сможете возобновить выполнение команд контейнера, таких как запуск или сборка.
Примечание Мы рекомендуем изменять теги по запросу или автоматизацию только в том случае, если вы столкнулись с автоматическим сбоем приложений.
Ссылки
В приведенном ниже списке показаны 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 образы виртуальных машин Marketplace с контейнерами, образы за февраль 2020 г. доступны. При использовании этих изображений не следует сталкиваться с проблемами или симптомами, описанными выше. Дополнительные сведения см. в разделе KB4540981.
Полный список образов контейнера Windows см. на странице Docker Hub здесь.
Дополнительные сведения о контейнерах Windows Server см. в разделе https://aka.ms/containers.