개요
WSL2 란 ?
WSL 2는 Linux용 Windows 하위 시스템 아키텍처의 새로운 버전으로, Linux용 Windows 하위 시스템이 Windows에서 ELF64 Linux 이진 파일을 실행할 수 있게 해줍니다. WSL 2의 주 목표는 파일 시스템 성능을 높이고 전체 시스템 호출 호환성을 추가하는 것입니다.
간단히 말하자면 윈도우에서 리눅스를 사용할 수 있다는 것입니다.
하드웨어 제약사항
- 모든 PC에서 WSL2을 사용할 수 있는것은 아닙니다.
설치
Windows Terminal 설치
먼저 microsoft store 앱을 연 후 Windows Terminal을 설치합니다.
WSL 설치를 위한 필수 윈도우 기능 활성화
PowerShell을 관리자 권한으로 실행 후 다음 명령 실행합니다.
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
필수기능 활성화가 완료되면 wsl 명령어를 확인해봅니다.
http://aka.ms/wslstore 에서 배포를 설치할 수 있습니다.
ubuntu를 설치한 후 조금 기다리면 ubuntu가 실행됩니다.
몇분 더 기다리면 계정 설정 하라고 하는데 여기에 입력창에 계정이름과 비밀번호를 설정합니다.
WSL 커널 업데이트 및 배포판 WSL 2버전 활성화
> wsl -l -v
NAME STATE VERSION
* docker-desktop-data Running 2
docker-desktop Running 2
Ubuntu Running 2
> wsl --set-version Ubuntu 2
> wsl --set-default Ubuntu
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop Running 2
docker-desktop-data Running 2
Windows Terminal 에서 ubuntu를 실행할 수 있습니다.
예제
WSL2에서 도커 실행하기
도커 데스크탑을 설치합니다.
설정 페이지의 General 탭에서 Use the WSL2 based engine 옵션을 체크해줍니다.
Resources > WSL INTEGRATION 탭 에서 설치한 WSL2 배포 Ubuntu를 활성화합니다.
배포에서 docker가 실행가능한 것을 확인할 수 있습니다.
WSL2 배포판에서 docker로 Nginx 서버 실행하기
실행중인 WSL2 배포판의 ip를 확인할 수 있습니다.
# ip addr show eth0
ykh@ykh:/mnt/c/Users/soul$ ip addr show eth0
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:c1:f9:40 brd ff:ff:ff:ff:ff:ff
inet 172.19.104.157/20 brd 172.19.111.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fec1:f940/64 scope link
valid_lft forever preferred_lft forever
배포판 IP를 입력하여 접속 시, Nginx에 접속되는 것을 확인할 수 있습니다.
WSL2의 네트워크는 MS의 가상화 기술인 Hiper-V 기반으로 동작하기 때문에 WSL2 재부팅 시 ip가 변경됩니다.
참고 문헌
Windows 10에 Linux용 Windows 하위 시스템 설치 가이드 | Microsoft Docs
Linux용 Windows 하위 시스템에 대한 명령 참조 | Microsoft Docs
'os > Windows' 카테고리의 다른 글
Windows 10에서 WSL2 docker run 또는 build 실행 시 디스크 용량 계속 증가 시 초기화 방법 (0) | 2021.07.20 |
---|---|
이미 사용하고 있는 D드라이브 파티션 분할하기 (0) | 2013.04.20 |