Senast uppdaterad 10 mars 2020 10:00 PST
Symptom
Du kan få problem med Windows Server -behållare om behållarvärden eller behållaravbildningen har säkerhetsuppdateringen från den 11 februari 2020, såvida inte både Windows-behållarvärden och Windows Server behållaravbildningar matchas med säkerhetsuppdateringen från den 11 februari 2020.
Symptom när du kör eller skapar en container kan vara:
- När du kör kommandot "docker run" eller "docker build" kanske du inte får utdata och det kan sluta svara.
- Windows Server Container i Kubernetes når inte tillståndet "körs".
- Du får felet "docker: Felsvar från daemon: behållar-ID <> påträffade ett fel under Start: fel i ett Windows-systemanrop: Tidsgränsen nåddes för vänteåtgärden. (0x102)."
- 32-bitarsprogrammet eller processerna som körs i behållaren kan misslyckas utan felmeddelande.
Orsak
Problemet beror på en säkerhetsändring som krävde en gränssnittsändring mellan användarläge och kernelläge. Eftersom processisolerade behållare delar kernelläget med behållarvärden och behållaravbildningarna var användarlägeskomponenten utan uppdateringen både inkompatibel och oskyddad med det nya säkra kärngränssnittet.
Lösning och lösning
Vi har lagt till ny uppdateringsvägledning på Windows Container Docs-webbplatsen i avsnitten Windows-behållarversionskompatibilitet och Uppdatera Windows Server-behållare. Detta innefattar även information om uppdateringskompatibilitet och matris. Information om de specifika problem som anges i den här artikeln finns i lösningen och åtgärden nedan.
Lösning för problemen "körs inte" och "32-bitarsprogram misslyckas tyst" (symptom 1, 2, 3, 4):
Den 18 februari 2020 släpptes uppdaterade behållaravbildningar för att åtgärda problemen med symptom (1,2,3,4) i den här artikeln. Om du stöter på dessa problem rekommenderar vi att du uppdaterar containervärden till säkerhetsuppdateringen från 11 februari 2020 och behållaravbildningarna som släpptes den 18 februari 2020. Anteckning Versionen från 18 februari 2020 är endast avsedd för behållaravbildningar. Säkerhetsuppdateringar från 11 februari 2020 är fortfarande de senaste för behållarvärden.
Lös problemet i miljön genom att köra pull-kommandot igen för att uppdatera Windows Server bas-OS-avbildningar eller tillämplig behållaravbildning, till exempel IIS eller .NET och köra automatiseringspipelinen igen för att återskapa behållarna med behållaravbildningarna med behållaravbildningen från 18 februari 2020.
Viktigt Om du har ändrat dina pull-taggar eller automatisering som en lösning på problemen i den här artikeln bör du återställa ändringarna till dina tidigare pull-taggar. Du bör inte längre behöva använda en specifik version.
Lösning för problemet "32-bitarsprogram misslyckas tyst" (symptom 4):
Vi rekommenderar starkt att du uppdaterar behållarvärden till säkerhetsuppdateringen från den 11 februari 2020 enligt beskrivningen ovan. Om du inte kan uppdatera containervärden till säkerhetsuppdateringarna från den 11 februari 2020 måste du matcha versions- och revisionsversionen av containeravbildningen med versions- och revisionsversionen för containervärdoperativsystemet. Anvisningar om hur du kontrollerar versionen av containervärden finns i den här artikeln. När du har versionen från behållarvärden kan du hämta behållaravbildningsversionen med följande kommando (du måste justera Windows Server bas-OS-avbildning och version enligt vad som gäller i din miljö). Om du till exempel använder Windows Server Core-behållaren:
docker pull mcr.microsoft.com/windows/servercore:<version your container host, such as 10.0.17763.1040>
När containervärd- och containeravbildningsversionerna matchar bör du kunna återuppta dina containerkommandon, till exempel run eller build.
Anteckning Vi rekommenderar att du bara ändrar dina pull-taggar eller automatisering om du stöter på appar som misslyckas utan fel.
Referenser
Listan nedan visar de Windows Server -versioner för vilka vi stöder behållaravbildningar, tillsammans med versionsnumren för säkerhetsuppdateringarna som släpptes den 14 januari 2020 och 11 februari 2020 och behållaravbildningen släpptes endast den 18 februari 2020. Behållaravbildningarna som släpptes den 18 februari 2020 och som anges nedan hämtas automatiskt om du inte anger versionen i dina flytande taggar.
| Version av Windows Server (flytande tagg) | Uppdateringsversion för version från 14 januari 2020 | Uppdateringsversion för 11 februari 2020 | Uppdateringsversion för 18 februari 2020 |
|---|---|---|---|
| Windows Server 2016 (ltsc2016) | 10.0.14393.3443 | 10.0.14393.3504 | 10.0.14393.3506 |
| Windows Server version 1803 (1803) | 10.0.17134.1246 | 10.0.17134.1304 | 10.0.17134.1305 |
| Windows Server 2019 (ltsc2019) Windows Server version 1809 (1809) |
10.0.17763.973 | 10.0.17763.1039 | 10.0.17763.1040 |
| Windows Server version 1903 (1903) | 10.0.18362.592 | 10.0.18362.657 | 10.0.18362.658 |
| Windows Server version 1909 (1909) | 10.0.18363.592 | 10.0.18363.657 | 10.0.18363.658 |
Om du använder avbildningar för virtuella datorer i Azure Marketplace med containrar är bilderna från februari 2020 tillgängliga nu. Du bör inte stöta på problemen eller symptomen ovan när du använder dessa bilder. Mer information finns i KB4540981.
En fullständig lista över Windows-behållaravbildningen finns på sidan Docker Hub här.
Mer detaljerad information om Windows Server containrar finns i https://aka.ms/containers.