Docker Desktop에서 “예기치 않은 WSL 오류”가 발생하는 것은 꽤 성가신 일입니다.특히 업무상 Docker를 사용하는 경우, WSL(Windows Subsystem for Linux) 구성, 권한 또는 누락된 구성 요소를 건드리면 온갖 문제가 발생할 수 있습니다.때로는 시행착오를 거듭해야 하는 것처럼 느껴져서 더욱 골치 아픕니다.하지만 다행히도 문제를 해결하고 Docker를 다시 원활하게 실행할 수 있는 몇 가지 확실한 방법이 있습니다.
Docker Desktop에서 “예기치 않은 WSL 오류”를 해결하는 방법
방법 1. WSL이 설치되어 있지 않으면 설치합니다.
기본적으로 Docker는 WSL2에 크게 의존합니다. WSL이 설치되지 않았거나 올바르게 구성되지 않은 경우 Docker에서 오류가 발생할 수 있습니다.따라서 가장 먼저 확인해야 할 것은 WSL이 존재하고 제대로 설치되었는지 여부입니다.
- 검색을 열려면 Windows 키 + S를 누르세요.
- 명령 프롬프트를 입력 하고 마우스 오른쪽 버튼을 클릭하여 관리자 권한으로 실행을 선택하세요.네, 관리자 권한으로 실행해야 합니다.
- 터미널에서 다음 명령어를 입력하고 Enter
wsl --install키를 누르세요 Enter.이 명령어는 WSL 2가 설치되어 있지 않은 경우 설치를 시작합니다.일부 빌드에서는 Windows 커널 업데이트도 자동으로 설치되므로 시스템이 완전히 업데이트되었는지 확인하세요. - 작업이 완료되면 PC를 재부팅하세요.
이렇게 하면 특히 WSL이 전혀 설치되어 있지 않은 경우 WSL을 처음부터 다시 설정하는 데 도움이 됩니다.단, 최신 Windows 업데이트가 설치되어 있는지 확인하십시오.이전 버전은 문제를 일으킬 수 있습니다.
방법 2. WSL을 최신 버전으로 업데이트합니다.
다음으로 WSL을 최신 버전으로 업데이트해야 합니다.오래된 버전은 호환성 문제를 일으켜 오류를 발생시킬 수 있습니다.관리자 권한으로 명령 프롬프트 또는 PowerShell 창을 열어 업데이트할 수 있습니다.
- Windows 키 + R을 누른 다음 cmd를Ctrl + Shift + Enter 입력하고 Enter 키를 눌러 관리자 권한으로 실행하세요.
- 나타나는 메시지를 확인하세요.
- 입력
wsl --update하고 Enter 키를 누르세요 Enter.그러면 Microsoft에서 최신 WSL 업데이트를 다운로드합니다. - 그 후 재부팅하십시오.때때로 이 단계를 통해 커널 불일치 또는 버그가 해결될 수 있습니다.
이 방법은 WSL 버전이 오래되었거나 버그가 있어 Docker Desktop에서 WSL2를 시작하려고 할 때 오류가 발생하는 경우에 적용됩니다.
방법 3. Docker의 Settings.json 파일 수정
Docker의 내부 설정, 특히 JSON 설정 파일이 잘못되는 경우가 있습니다.다른 해결 방법이 효과가 없을 경우 이 부분을 확인해 보는 것이 좋습니다.
- Windows 키 + E를 눌러 파일 탐색기를 엽니다.
- 주소창에 %Appdata%\Docker를 붙여넣고 Enter 키를 누르세요 Enter.
- settings.json 파일을 찾아서 두 번 클릭하세요.만약 해당 파일이 없다면 Docker가 손상되었을 가능성이 있으므로 재설치가 필요할 수 있습니다.
- 다음 선들을 찾아보세요:
"integratedWslDistros" : [ ]"enableIntegrationWithDefaultWslDistro" : false
- 필요에 따라 이러한 설정을 조정하십시오.예를 들어, 설정을
"enableIntegrationWithDefaultWslDistro"변경하면trueDocker의 호환성이 향상될 수 있습니다.변경 사항을 저장하고 Docker를 다시 시작하십시오.
Docker의 JSON 설정이 WSL 설정과 일치하는지 확인하면 오류가 해결되는 경우가 많습니다.경험상 설정이 잘못되면 Docker가 WSL 통합과 관련된 이상한 오류를 발생시키는 경우가 흔합니다.
방법 4.명령 프롬프트를 레거시 모드로 전환합니다.
이건 교묘한 꼼수입니다.일부 사용자는 명령 프롬프트를 레거시 모드로 설정하면 Docker의 오류 메시지가 줄어드는 것을 발견했는데, 특히 기본 콘솔이 불안정할 때 효과적입니다.
- 검색 창을 열고 ‘명령 프롬프트’를 입력한 다음 마우스 오른쪽 버튼을 클릭하고 ‘ 관리자 권한으로 실행’을 선택하세요.
- 상단 표시줄을 마우스 오른쪽 버튼으로 클릭한 다음 속성을 선택합니다.
- 옵션 탭 으로 이동하세요.
- 레거시 콘솔 사용을 선택하세요.
- 확인을 클릭 하고 Docker를 다시 시작하세요.때때로 이 간단한 변경만으로 WSL과의 상호 작용이 안정화됩니다.
몇몇 분들의 말씀에 따르면, 기존 콘솔이 Docker의 WSL 구성 요소와 더 잘 호환되는 경우가 있다고 합니다.물론 다소 구식이긴 하지만요.
방법 5. Winsock 재설정을 사용하여 네트워크 설정을 재설정합니다.
네트워크 문제 또는 오작동하는 네트워크 스택은 WSL의 연결에 문제를 일으켜 Docker 오류를 유발할 수 있습니다. Winsock 및 네트워크 구성을 재설정하면 이 문제를 해결하는 데 도움이 될 수 있습니다.
- Windows 키 + R을 누르고 cmd를 입력 한 다음 Enter 키를 누르십시오 Ctrl + Shift + Enter.
- 사용자 계정 컨트롤(UAC) 메시지가 나타나면 허용하세요.
- 다음 두 명령어를 순서대로 실행하세요.
netsh int ip resetnetsh winsock reset
- 작업이 완료되면 재부팅하세요.좀 번거롭긴 하지만, 네트워크 불안정으로 인해 WSL 및 Docker 오류가 발생하는 경우가 있는데, 이렇게 하면 잠재적인 문제를 해결할 수 있습니다.
일부 환경에서는 이 단계를 통해 네트워크 관련 WSL 오류 또는 Docker 멈춤 현상이 해결되었습니다.
방법 6. WSL 및 관련 Windows 기능을 완전히 재설치합니다.
다른 방법이 모두 실패했을 경우, WSL과 선택적 기능을 완전히 제거하고 다시 설치하는 것이 최후의 수단이 될 수 있습니다.물론 더 복잡한 과정이지만, 윈도우가 복잡해지거나 제대로 작동하지 않을 때가 있습니다.
- Windows 키 + I를 눌러 설정을 엽니다.
- 앱 으로 이동한 다음 설치된 앱을 클릭하세요.
- “Windows Subsystem for Linux”를 찾아서 그 옆에 있는 점 세 개( … ) 를 클릭하세요.
- [제거]를 선택하세요. Ubuntu 또는 설치한 다른 Linux 배포판과 같은 앱에 대해서도 동일한 과정을 반복하세요.
- 다음으로, 설정 상단의 검색창에서 ‘ 선택적 기능 ‘을 찾은 다음, 하단에 있는 ‘추가 Windows 기능’을 클릭하세요.
- Windows Subsystem for Linux and Virtual Machine Platform의 체크를 해제하세요.
- 확인을 클릭한 다음 재부팅하세요.
- 재부팅 후 다시 돌아가서 해당 기능을 다시 활성화하십시오.그런 다음 다시 시작하십시오.
- 마지막 으로 명령 프롬프트를 통해 WSL을 다시 설치하세요.
wsl --install초기 설치를 처음부터 다시 하면 때때로 문제가 해결되는 경우가 있습니다.
이건 일종의 최후의 수단이지만, 일부 기기에서는 초기화하는 유일한 방법입니다.
요약
- WSL이 올바르게 설치되었는지 확인하십시오.
- WSL을 최신 버전으로 업데이트하세요.
- Docker의 JSON 설정을 확인하고 조정하세요.
- 필요한 경우 명령 프롬프트를 레거시 모드로 전환하십시오.
- 네트워크 설정 재설정 – Winsock 및 IP 재설정.
- 다른 모든 방법이 실패하면 WSL을 처음부터 다시 설치하십시오.
마무리
이런 종류의 오류는 정말 골칫거리죠.대부분의 경우 구성 요소가 누락되었거나 설정이 일치하지 않아서 발생합니다.해결 방법은 대개 WSL과 Docker 설정을 설치, 업데이트 또는 초기화하는 것입니다.때로는 완전히 삭제하고 다시 설치하는 것이 유일한 해결책일 수도 있습니다.하지만 일단 모든 설정이 맞춰지면 Docker는 다시 정상적으로 작동하는 경우가 많습니다.이 정보가 누군가에게 도움이 되어 몇 시간씩 골머리를 앓지 않도록 해주길 바랍니다.몇몇 환경에서는 효과가 있었는데, 여러분의 환경에서도 잘 되기를 기대합니다.