Windows 10에서 Windows Containers의 docker run 실행 시 encountered an error during CreateContainer failed in Win32 발생
문서에 따라,
Windows Containers on Windows Server
; https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment
Windows Containers 환경에서 "docker run"을 하는 경우 이상하게 문제가 발생하는 군요.
Windows 10의 경우 다음과 같이 오류가 발생하는데, (오류가 발생하기까지 한참동안 hang 상태로 머뭅니다.)
C:\Windows\system32>docker run microsoft/nanoserver ipconfig
docker: Error response from daemon: container 27fc76b590d8927818f337f049171724d0da37237dd890096ab890284445a75e encountered an error during Start failed in Win32: The operation timed out because a response was not received from the Virtual Machine hosting the Container. (0xc0370109).
C:\Windows\system32>docker run microsoft/nanoserver ipconfig
docker: Error response from daemon: container 3c2b42a402191c0277e0608e1a585622395f1bebd8ae2f646118a4fba8f3b160 encountered an error during CreateContainer failed in Win32: A connection could not be established with the Virtual Machine hosting the Container. (0xc0370108) extra info: {"SystemType":"Container","Name":"3c2b42a402191c0277e0608e1a585622395f1bebd8ae2f646118a4fba8f3b160","Owner":"docker","IsDummy":false,"VolumePath":"","IgnoreFlushesDuringBoot":true,"LayerFolderPath":"C:\\ProgramData\\docker\\windowsfilter\\3c2b42a402191c0277e0608e1a585622395f1bebd8ae2f646118a4fba8f3b160","Layers":[{"ID":"816fe89a-6b1b-525c-98b2-bf4a43db50af","Path":"C:\\ProgramData\\docker\\windowsfilter\\d65fad4fc23491d32b5c2c05fd4370411b4ec706ea1502aaff7e2ee8f9690e0b"}],"HostName":"3c2b42a40219","MappedDirectories":[],"SandboxPath":"C:\\ProgramData\\docker\\windowsfilter","HvPartition":true,"EndpointList":["9fe4c982-bd42-4a4a-8f7b-7d35339bb567"],"HvRuntime":{"ImagePath":"C:\\ProgramData\\docker\\windowsfilter\\d65fad4fc23491d32b5c2c05fd4370411b4ec706ea1502aaff7e2ee8f9690e0b\\UtilityVM"},"Servicing":false}.
위의 명령이 실행되는 동안 "docker ps"로 실행 중인 컨테이너를 확인하는 명령어를 내리면 역시 hang 상태로 머뭅니다.
현재(2016년 8월 5일) 문서에는 다음의 명령어로 docker.exe, dockerd.exe를 다운로드 받는다고 나오는데요.
Invoke-WebRequest "https://get.docker.com/builds/Windows/x86_64/docker-1.12.0.zip" -OutFile "$env:TEMP\docker-1.12.0.zip" -UseBasicParsing
버전이 아닌, 가장 최근의 docker.exe, dockerd.exe는 다음의 명령어로 받을 수 있습니다.
Invoke-WebRequest "https://get.docker.com/builds/Windows/x86_64/docker-latest.zip" -OutFile "$env:TEMP\docker-latest.zip" -UseBasicParsing
오늘 날짜의 docker-latest.zip은 docker-1.12.0.zip과 동일합니다. 다음은 버전 정보입니다.
C:\Windows\system32>docker version
Client:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built: Thu Jul 28 23:54:00 2016
OS/Arch: windows/amd64
Server:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built: Thu Jul 28 23:54:00 2016
OS/Arch: windows/amd64
그런데, 개발 중인 버전을 다운로드 받는 방법이 있습니다.
Invoke-WebRequest https://master.dockerproject.org/windows/amd64/docker.exe -OutFile $env:ProgramFiles\docker\docker.exe
Invoke-WebRequest https://master.dockerproject.org/windows/amd64/dockerd.exe -OutFile $env:ProgramFiles\docker\dockerd.exe
오늘 날짜의 개발 버전을 다운로드 받아 실행하면 버전 번호가 1.13.0-dev로 나옵니다.
C:\WINDOWS\system32>docker version
Client:
Version: 1.13.0-dev
API version: 1.25
Go version: go1.6.3
Git commit: 9513aa3
Built: Fri Aug 5 00:44:02 2016
OS/Arch: windows/amd64
Server:
Version: 1.13.0-dev
API version: 1.25
Go version: go1.6.3
Git commit: 9513aa3
Built: Fri Aug 5 00:44:02 2016
OS/Arch: windows/amd64
그리고 이 버전으로 실행하면 정상적으로 실습을 할 수 있습니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]