Docker Desktop 업그레이드 시 "The process cannot access the file 'C:\Program Files\Docker\Docker\resources\dockerd.exe' because it is being used by another process."
Docker Desktop 업그레이드 알람이 떴길래 진행했더니 "Docker Desktop Installer.exe" 설치 도중 다음과 같은 오류가 발생합니다.
Installation failed
The process cannot access the file 'C:\Program Files\Docker\Docker\resources\dockerd.exe' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at CommunityInstaller.UnpackArtifactsStep.<DoAsync>d__32.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CommunityInstaller.InstallWorkflow.<HandleD4WPackageAsync>d__29.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CommunityInstaller.InstallWorkflow.<ProcessAsync>d__24.MoveNext()
파일 탐색기를 이용해 dockerd.exe를 지우려고 하니 "The action can't be completed because the file is open in Windows Event Log"라고 하면서 "Event Log"에 의해 잠겼다고 합니다. 좀 더 확인을 위해 Process Explorer로 "dockerd.exe"에 대해 검색해 보면, svchost.exe가 나오고 그 프로세스가 호스팅하고 있는 서비스가 "EventLog"였습니다.
물론 해당 서비스를 재시작한 후 다시 "Docker Desktop Installer.exe"를 실행시키면 정상적으로 설치가 완료됩니다. 문제는, 재발을 방지할 수 있는 묘안이 딱히 없다는 것입니다. ^^;
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]