2020년 2월 11일 보안 업데이트 릴리스에서 Windows Server 컨테이너를 사용할 때 문제가 발생할 수 있습니다.

적용 대상
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

마지막 업데이트 2020년 3월 10일 오전 10시 PST

증상

Windows 컨테이너 호스트와 Windows Server 컨테이너 이미지가 2020년 2월 11일 보안 업데이트와 일치하지 않으면 컨테이너 호스트 또는 컨테이너 이미지에 2020년 2월 11일 보안 업데이트가 있을 때 Windows Server 컨테이너를 사용하는 데 문제가 발생할 수 있습니다.

컨테이너를 실행하거나 빌드할 때 생기는 증상에는 다음이 포함될 수 있습니다.

  1. "docker run" 또는 "docker build" 명령을 실행하면 출력을 받지 못할 수 있으며 응답하지 않을 수 있습니다.
  2. Kubernetes의 Windows Server 컨테이너가 "실행 중" 상태에 도달하지 않습니다.
  3. "docker: 디먼의 오류 응답: 시작 중 컨테이너 <ID> 에 오류가 발생했습니다. Windows 시스템 호출에서 실패: 대기 작업이 시간 초과되었습니다. (0x102)."
  4. 컨테이너 내부에서 실행되는 32비트 애플리케이션 또는 프로세스가 자동으로 실패할 수 있습니다.

원인

이 문제는 사용자 모드와 커널 모드 간의 인터페이스 변경을 필요로 하는 보안 변경의 결과였습니다. 프로세스 격리 컨테이너는 커널 모드를 컨테이너 호스트 및 컨테이너 이미지와 공유하기 때문에 업데이트가 없는 사용자 모드 구성 요소는 새로운 보안 커널 인터페이스와 호환되지 않았으며 안전하지 않았습니다.

해결 방법

Windows 컨테이너 버전 호환성Windows Server 컨테이너 업데이트 섹션에 Windows 컨테이너 문서 사이트의 새 업데이트 지침을 추가했습니다.  여기에는 업데이트 호환성 및 매트릭스에 대한 세부 정보도 포함됩니다.  이 문서에 나열된 특정 문제에 대한 자세한 내용은 아래 해결 방법 및 완화를 참조하세요.

"실행되지 않음" 및 "32비트 애플리케이션 자동 실패" 문제(증상 1, 2, 3, 4)에 대한 해결 방법:

2020년 2월 18일에 이 문서의 증상(1,2,3,4)이 일어나는 문제를 해결하기 위해 업데이트된 컨테이너 이미지가 릴리스되었습니다.  이러한 문제가 발생하는 경우 컨테이너 호스트를 2020년 2월 11일 보안 업데이트 릴리스와 2020년 2월 18일에 릴리스된 컨테이너 이미지로 업데이트하는 것을 권장합니다.   참고 2020년 2월 18일 릴리스는 컨테이너 이미지 전용입니다.  2020년 2월 11일 보안 업데이트는 여전히 컨테이너 호스트의 최신 업데이트입니다.

사용자 환경에서 문제를 resolve 위해 끌어오기 명령을 다시 실행하여 Windows Server 기본 OS 이미지 또는 IIS 또는 .NET과 같은 해당 컨테이너 이미지를 업데이트하고 자동화 파이프라인을 다시 실행하여 2020년 2월 18일 컨테이너 이미지와 함께 컨테이너 이미지를 사용하여 컨테이너를 다시 빌드합니다.

중요 이 문서의 문제에 대한 해결 방법으로 끌어오기 태그 또는 자동화를 변경한 경우 이전 끌어오기 태그에 대한 변경 내용을 되돌리기 합니다.  더 이상 특정 버전을 사용할 필요가 없습니다.

"32비트 애플리케이션 자동 실패" 문제(증상 4)에 대한 완화:

위에서 설명한 대로 컨테이너 호스트를 2020년 2월 11일 보안 업데이트로 업데이트하는 것이 좋습니다 . 컨테이너 호스트를 2020년 2월 11일 보안 업데이트로 업데이트할 수 없는 경우 컨테이너 호스트 운영 체제의 빌드 및 개정 버전과 컨테이너 이미지의 빌드 및 개정 버전을 일치시켜야 합니다.  컨테이너 호스트의 버전을 검사 방법에 대한 지침은 이 문서를 참조하세요. 컨테이너 호스트의 버전이 있으면 다음 명령을 사용하여 컨테이너 이미지 버전을 끌어올 수 있습니다(환경에 적용되는 Windows Server 기본 OS 이미지 및 버전을 조정해야 합니다). 예를 들어 Windows Server Core 컨테이너를 사용하는 경우:

docker pull mcr.microsoft.com/windows/servercore:<version your container host, such as 10.0.17763.1040>

컨테이너 호스트 및 컨테이너 이미지 버전이 일치하면 실행 또는 빌드와 같은 컨테이너 명령을 다시 시작할 수 있습니다.

참고 자동으로 실패한 앱이 발생하는 경우에만 끌어오기 태그 또는 자동화를 변경하는 것이 좋습니다.

참조 자료

아래 목록에서는 컨테이너 이미지를 지원하는 Windows Server 버전과 2020년 1월 14일 및 2020년 2월 11일에 릴리스된 보안 업데이트의 버전 번호와 2020년 2월 18일에만 릴리스된 컨테이너 이미지를 보여 줍니다.  아래 나열된 2020년 2월 18일에 릴리스된 컨테이너 이미지는 부동 태그에 버전을 지정하지 않으면 자동으로 가져오게 됩니다.

Windows Server 버전(부동 태그) 2020년 1월 14일 릴리스의 업데이트 버전 2020년 2월 11일 업데이트 버전 2020년 2월 18일 업데이트 버전
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년 2월 이미지를 사용할 수 있습니다. 이러한 이미지를 사용하면서 위의 문제나 증상이 발생하지 않아야 합니다.  자세한 내용은 KB4540981을 참조하세요.

Windows 컨테이너 이미지의 전체 목록은 여기 Docker Hub 페이지를 참조하세요.

Windows Server 컨테이너에 대한 자세한 내용은 https://aka.ms/containers 참조하세요.