Docker 실행 시 WSL2 및 BIOS 오류 및 해결법
Docker 실행시에 running이 되지 않고 뜬 에러
deploying WSL2 distributions
ensuring main distro is deployed: deploying "docker-desktop": importing WSL distro "WSL2는 현재 컴퓨터 구성에서 지원되지 않습니다.\r\n\"가상 머신 플랫폼\" 선택적 구성 요소를 사용하도록 설정하고 BIOS에서 가상화가 사용하도록 설정되어 있는지 확인하세요.\r\n실행하여 \"가상 머신 플랫폼\"을 사용하도록 설정: wsl.exe --install --no-distribution\r\n자세한 내용은 https://aka.ms/enablevirtualization 참조하세요.\r\n오류 코드: Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED\r\n" output="docker-desktop": exit code: 4294967295: running WSL command wsl.exe C:\Windows\System32\wsl.exe --import docker-desktop <HOME>\AppData\Local\Docker\wsl\main C:\Program Files\Docker\Docker\resources\wsl\wsl-bootstrap.tar --version 2: WSL2는 현재 컴퓨터 구성에서 지원되지 않습니다.
"가상 머신 플랫폼" 선택적 구성 요소를 사용하도록 설정하고 BIOS에서 가상화가 사용하도록 설정되어 있는지 확인하세요.
실행하여 "가상 머신 플랫폼"을 사용하도록 설정: wsl.exe --install --no-distribution
자세한 내용은 https://aka.ms/enablevirtualization 참조하세요.
오류 코드: Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
: exit status 0xffffffff
checking if isocache exists: CreateFile \\wsl$\docker-desktop-data\isocache\: The network name cannot be found.
AI에게 물어보니, WSL2와 가상화 설정이 제대로 되어있지 않아서 발생한 오류라는것을 알게되었다.
해결방법
1. BIOS에서 가상화 설정 확인
WSL2는 CPU 가상화 설정이 활성화 되어있어야만 실행이 된다.
- PC를 재부팅하고 BIOS/UEFI 설정에 들어간다. (일반적으로 F2, DEL, 또는 ESC 키를 사용).
- Intel VT-x 또는 AMD-V와 같은 가상화 옵션이 활성화되어 있는지 확인하고, 비활성화되어 있다면 활성화한다.
- 설정을 저장하고 BIOS를 종료한 후 시스템을 재부팅한다.
2. "가상 머신 플랫폼 활성화"
Win + R > optionalfeatures 입력 > 가상 머신 플랫폼 체크해서 활성화
3. WSL2 설치 및 설정
wsl.exe --install --no-distribution
❓ WSL2가 꼭 필요한건가
WSL2는 Docker Desktop을 실행할 때 기본적으로 필요하다. Docker는 컨테이너를 실행하는데 리눅스 환경을 요구하는데, WSL2는 윈도우에서 리눅스 커널을 제공하여 Docker가 원활하게 실행될 수 있도록 도와준다.
따라서, Docker를 윈도우에서 사용하려면 WSL2가 필수적이다. 만약 Docker를 윈도우에서 사용하지 않는다면 WSL2를 설정할 필요가 없다. 하지만, Docker를 원활하게 사용하기 위해서는 WSL2를 설치하는것이 권장된다.
요약
- Docker 사용: WSL2가 필요함.
- Docker 사용 안 함: WSL2를 사용할 필요 없음.
❓ WSL2를 사용하려면 Microsoft Store 에서 Ubuntu를 설치해야 가능한건가
WSL2를 사용하려면 반드시 Microsoft Store에서 Ubuntu와 같은 리눅스 배포판을 설치해야 하는 것은 아니다. WSL2는 다양한 리눅스 배포판을 지원하고, 그 중 하나로 Ubuntu를 사용할 수 있다. 하지만 WSL2가 작동하려면 리눅스 배포판이 필요하다.
방법1 : Microsoft Store에서 Ubuntu 설치
방법2 : Powrshell을 관리자 권한으로 실행하여 설치
wsl --list --online
설치 가능한 리눅스 배포판 목록을 확인
wsl --install -d <배포판 이름>
설치하려는 배포판을 선택하고 설치
❓ WSL2는 CPU가 가상화 되어있지 않으면 안돌아가는건가
Yes, WSL2는 CPU 가상화(VT-x 또는 AMD-V) 기능이 활성화되지 않으면 제대로 작동하지 않는다. WSL2는 리눅스 커널을 가상화 방식으로 실행하기 때문에, 이를 위해 CPU의 하드웨어 가상화 기능이 반드시 필요하다. 이 가상화 기능이 활성화되어야만 WSL2가 가상 머신으로 리눅스를 실행할 수 있다.
왜 가상화가 필요한지?
- WSL2는 Windows 10과 Windows 11에서 리눅스 커널을 실행하는 데 가상화 기술을 사용한다. 이를 통해 리눅스 배포판을 가상 머신으로 실행하며, WSL1은 이를 사용하지 않았다.
- CPU 가상화가 활성화되지 않으면, WSL2는 해당 기능을 사용할 수 없고, 그로 인해 설치나 실행 시 오류가 발생한다.