본문 바로가기

os/Windows

WSL 2 설치 및 docker로 Nginx 서버 실행해보기

개요

WSL2 란 ?

WSL 2는 Linux용 Windows 하위 시스템 아키텍처의 새로운 버전으로, Linux용 Windows 하위 시스템이 Windows에서 ELF64 Linux 이진 파일을 실행할 수 있게 해줍니다. WSL 2의 주 목표는 파일 시스템 성능을 높이고 전체 시스템 호출 호환성을 추가하는 것입니다.

간단히 말하자면 윈도우에서 리눅스를 사용할 수 있다는 것입니다.

Linux용 Windows 하위 시스템 정보

하드웨어 제약사항

  • 모든 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

Linux와 Windows의 상호 운용성 | Microsoft Docs

WSL2 설치 및 사용 방법 | 44Bits

WSL2 써보려다가 실패한 이야기 짧게 | 쮸쀼쮸쀼