도커 실습을 위해 docker desktop 프로그램을 실행해보았는데 아래와 같은 오류가 발생했다.

내용을 해석해보면, PC에서 하드웨어 가상화(virtualization)가 꺼져 있어서 Docker Desktop이 아예 실행되지 않는 상태이다.
이를 해결하기 위해서는 일단 PC의 가상화 기능을 켜주어야 하는데, 우선 가상화가 켜져있는지를 확인하려면 Windows PowerShell에서 다음과 같은 명령어를 입력해보면 된다.
systeminfo

출력 결과를 살펴보면,
- Virtualization Enabled In Firmware: Yes → BIOS에서 가상화(VT-x/AMD-V) 켜져 있음
- VM Monitor Mode Extensions: Yes → CPU가 가상화 기능 지원
- Second Level Address Translation: Yes → WSL2, Hyper-V에 필요한 SLAT 지원
- Data Execution Prevention Available: Yes → DEP 켜져 있음
하드웨어 단에서는 가상화가 잘 켜져 있음을 알 수 있다. 그렇다면 문제는 윈도우의 가상환경 적용 유무가 아닌 WSL2(Windows Subsystem for Linux 2)환경이 세팅되어 있지 않다는 말이다.
Windows Home 에디션의 경우, Docker Desktop을 실행하려면 WSL2가 필요하기 때문에 WSL2가 준비되어 있어야 엔진이 켜지고 docker pull과 같은 명령어들을 사용할 수 있게 된다.
해결 방법
- 관리자 권한으로 PoswerShell 실행
- wsl.exe --install Ubuntu 명령어 입력
- wsl --install -d Ubuntu-22.04
→ 자동으로 필요한 Windows 선택적 기능 설치 시작 - "가상 머신 플랫폼" 기능 켜기
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- WSL 필수 구성 요소 켜기
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 명령어 모두 실행한 뒤 재부팅
그러나.. 모든 명령어를 실행해봤음에도 해결이 되지 않았음.
PS C:\WINDOWS\system32> wsl --status >>
기본 버전: 2 현재 컴퓨터 구성에서는 WSL1이 지원되지 않습니다.
WSL1을 사용하려면 "Windows Subsystem for Linux” 선택적 구성 요소를 사용하세요.
WSL2는 현재 컴퓨터 구성에서 지원되지 않습니다.
"가상 머신 플랫폼" 선택적 구성 요소를 사용하도록 설정하고
BIOS에서 가상화가 사용하도록 설정되어 있는지 확인하세요.
실행하여 "가상 머신 플랫폼"을 사용하도록 설정: wsl.exe --install --no-distribution
자세한 내용은 https://aka.ms/enablevirtualization 참조하세요. PS C:\WINDOWS\system32>
위와 같이 WSL이 잘 설치가 되지 않은듯한 상태였음.
하드웨어단에서 가상화도 켜져있고
Hyper-V 계열 하이퍼바이저도 활성화 돼있고
CPU도 Intel VT-x를 지원하는 모델이고..
윈도우의 기능은 모두 켜져있는데 WSL2 커널이 올라오질 못했음.
WSL 엔진 초기화도 해보고 다른 버전으로 다운도 받아보고 WSL 패키지 자체를 삭제하고 재설치도 해봤는데 모두 실패.
그러나
VMware Workstation Player, VirtualBox 같이 하이퍼바이저 사용하는 프로그램이 있다면 충돌이 날 수도 있다는 내용을 보고 VMware 17 버전을 삭제해주었더니...


이제 도커가 정상 작동된다!..
핵심은 VMware를 사용해본 적 있다면 삭제해보시길 권장.