Ostatnia aktualizacja 10 marca 2020 r., 10:00 czasu PST
Objawy
Podczas używania kontenerów systemu Windows Server mogą wystąpić problemy, jeśli host lub obraz kontenera zawiera aktualizację zabezpieczeń z 11 lutego 2020 r., chyba że zarówno host kontenera systemu Windows, jak i obrazy kontenera systemu Windows Server są zgodne z aktualizacją zabezpieczeń z 11 lutego 2020 r.
Objawy podczas uruchamiania lub kompilowania kontenera mogą obejmować:
- Po uruchomieniu polecenia "docker run" lub "docker build" możesz nie otrzymać danych wyjściowych i mogą przestać odpowiadać.
- Kontener systemu Windows Server na platformie Kubernetes nie osiąga stanu "uruchomiony".
- Jest wyświetlany błąd "docker: Odpowiedź błędu z demona: identyfikator> kontenera <napotkał błąd podczas uruchamiania: błąd w wywołaniu systemu Windows: Przekroczono limit czasu operacji oczekiwania. (0x102)."
- 32-bitowe aplikacje lub procesy działające wewnątrz kontenera mogą dyskretnie zakończyć się niepowodzeniem.
Przyczyna
Ten problem był wynikiem zmiany zabezpieczeń, która wymagała zmiany interfejsu między trybem użytkownika a trybem jądra. Ponieważ kontenery izolowane procesowo współdzielą tryb jądra z hostem kontenera i obrazami kontenera, składnik trybu użytkownika bez aktualizacji był zarówno niezgodny, jak i niezabezpieczony z nowym zabezpieczonym interfejsem jądra.
Rozwiązanie i obejście problemu
Dodaliśmy nowe wskazówki dotyczące aktualizacji w witrynie Windows Container Docs w sekcjach Zgodność wersji kontenera systemu Windows i Aktualizacja kontenerów systemu Windows Server. Obejmuje to również szczegółowe informacje na temat zgodności aktualizacji i macierzy. Aby uzyskać informacje na temat konkretnych problemów wymienionych w tym artykule, zapoznaj się z poniższymi rozwiązaniami i środkami zaradczymi.
Rozwiązanie problemów "nie działają" i "aplikacje 32-bitowe dyskretnie kończą się niepowodzeniem" (objawy 1, 2, 3, 4):
W dniu 18 lutego 2020 r. zostały wydane zaktualizowane obrazy kontenerów w celu rozwiązania problemów z objawami (1,2,3,4) opisanymi w tym artykule. Jeśli te problemy występują, zalecamy zaktualizowanie hosta kontenera do aktualizacji zabezpieczeń z 11 lutego 2020 r. i obrazów kontenera wydanych 18 lutego 2020 r. Wskazówka Wydanie z 18 lutego 2020 r. dotyczy tylko obrazów kontenera. Aktualizacje zabezpieczeń z 11 lutego 2020 r. są nadal najnowszymi dla hosta kontenera.
Aby rozwiązać ten problem w środowisku, uruchom ponownie polecenie ściągania w celu zaktualizowania podstawowych obrazów systemu operacyjnego Windows Server lub odpowiedniego obrazu kontenera, takiego jak IIS lub .NET, a następnie ponownie uruchom potok automatyzacji, aby ponownie skompilować kontenery przy użyciu obrazów kontenera z obrazem kontenera z 18 lutego 2020 r.
Ważne Jeśli w celu obejścia problemów opisanych w tym artykule zmieniono tagi ściągania lub automatyzację, należy przywrócić zmiany do poprzednich tagów ściągania. Nie potrzebujesz już określonej wersji.
Środek zaradczy problemu "Aplikacje 32-bitowe dyskretnie kończą się niepowodzeniem" (objaw 4):
Zdecydowanie zalecamy zaktualizowanie hosta kontenera do aktualizacji zabezpieczeń z 11 lutego 2020 r. zgodnie z powyższym opisem. Jeśli nie możesz zaktualizować hosta kontenera do aktualizacji zabezpieczeń z 11 lutego 2020 r., musisz dopasować wersję kompilacji i poprawki obrazu kontenera do wersji kompilacji i poprawki systemu operacyjnego hosta kontenera. Aby uzyskać instrukcje dotyczące sprawdzania wersji hosta kontenera, zobacz ten artykuł. Po uzyskaniu wersji z hosta kontenera możesz pobrać wersję obrazu kontenera przy użyciu następującego polecenia (musisz dostosować podstawowy obraz i wersję systemu operacyjnego Windows Server zgodnie z obowiązującymi w danym środowisku). Jeśli na przykład używasz kontenera systemu Windows Server Core:
docker pull mcr.microsoft.com/windows/servercore:<version your container host, such as 10.0.17763.1040>
Po dopasowaniu wersji hosta kontenera i obrazu kontenera powinno być możliwe wznowienie poleceń kontenera, takich jak uruchamianie lub kompilacja.
Wskazówka Zalecamy zmianę tagów ściągania lub automatyzacji tylko wtedy, gdy występują aplikacje powodujące awarię po cichu.
Źródła informacji
Poniższa lista zawiera wersje systemu Windows Server, dla których obsługiwane są obrazy kontenera, wraz z numerami wersji aktualizacji zabezpieczeń wydanych 14 stycznia 2020 r. i 11 lutego 2020 r. oraz samych obrazów kontenera wydanych 18 lutego 2020 r. Wymienione poniżej obrazy kontenerów opublikowane 18 lutego 2020 r. zostaną pobrane automatycznie, jeśli nie określisz wersji w tagach przestawnych.
| Wersja systemu Windows Server (tag przestawny) | Wersja aktualizacji z 14 stycznia 2020 r. | Wersja aktualizacji z 11 lutego 2020 r. | Wersja aktualizacji z 18 lutego 2020 r. |
|---|---|---|---|
| Windows Server 2016 (ltsc2016) | 10.0.14393.3443 | 10.0.14393.3504 | 10.0.14393.3506 |
| Windows Server, wersja 1803 (1803) | 10.0.17134.1246 | 10.0.17134.1304 | 10.0.17134.1305 |
| Windows Server 2019 (ltsc2019) Windows Server, wersja 1809 (1809) |
10.0.17763.973 | 10.0.17763.1039 | 10.0.17763.1040 |
| Windows Server, wersja 1903 (1903) | 10.0.18362.592 | 10.0.18362.657 | 10.0.18362.658 |
| Windows Server, wersja 1909 (1909) | 10.0.18363.592 | 10.0.18363.657 | 10.0.18363.658 |
Jeśli używasz obrazów maszyny wirtualnej witryny Azure Marketplace z kontenerami, obrazy z lutego 2020 r. są już dostępne. Przy użyciu tych obrazów nie powinny wystąpić problemy lub objawy opisane powyżej. Aby uzyskać więcej informacji, zobacz KB4540981.
Aby uzyskać pełną listę obrazów kontenera systemu Windows, zapoznaj się ze stroną Docker Hub tutaj.
Bardziej szczegółowe informacje na temat kontenerów Windows Server można znaleźć na stronie https://aka.ms/containers.