[윈도우] WSL2 로 docker 이용하기 Computer Tip

WSL (Windows SubSystem for Linux) 이 벌써 버전2가 나왔고,
이를 이용하면 윈도우에 우분투 등의 리눅스를 설치할 수 있고
여기 리눅스 시스템에서 docker를 제대로 돌려볼 수 있게 되었습니다.
2020년 5월인가 버전 이후부터 윈도우 홈 버전에도 돌아간다 합니다.

다음은 그 사용법 입니다.

1) 윈도우 버전 체크

윈도우키+R 을 누르고 "winver"을 눌러 WSL2를 설치할 수 있는지 알아봅니다.

Version 1903 (OS Build 18362.1049) 
이후 버전이면 됩니다. (해당 내용)

참고로, 맥의 패러렐즈 가상머신에서 테스트 해 보았습니다만, 

이런 경우, CPU를 Hypervisor: "Parallels"로 하고 "Enable nested virtualization" 이 설정되어 있어야 합니다.


2) 윈도우 터미널 설치

이 부분은 선택사항이지만 과거 CMD와 PowerShell 만 가지고 있던 터미널이
리눅스 지원 등을 포함하는 윈도우 터미널을 이용하는게 좋더라구요.

마이크로소프트 스토어에서 터미널을 검색하여, "Windows Terminal"을 선택하고

"Get" 하고, (윈도우 계정을 넣으라고 하지만 그냥 닫으면 윈도우 계정 없이도 설치 가능합니다)

설치를 마치고,

시작>윈도우 터미널을 찾아 관리자 권한으로 실행합니다.


3) WSL 2 설치

2에서 설치한 관리자 권한의 윈도우 터미널에서 다음과 같은 세 명령을 내립니다.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart

그 다음 시스템을 다시 시작합니다.

다시 관리자 권한의 윈도우 터미널을 연 다음,

앞으로 설치하는 WSL 인스턴스를 버전2로 설치하라고 알려주기 위하여,

wsl --set-default-version 2
라고 명령을 내려보면,

https://aka.ms/wsl2kernel 을 방문하여 커널 컴포넌트를 update 하라고 합니다.

웹브라우저에서 해당 링크를 열면 
상단에 "Download the latest package:" 하단의 링크를 눌러 패키지를 다운받고 설치하면,

위와 같이 패키지를 설치합니다.

이제 다시 이전의 명령
wsl --set-default-version 2
을 내려 잘 설정되었음을 알 수 있습니다.


4) 우분투 설치


역시 스토어에서 "Ubuntu"로 검색하여,

"Install" 을 한 다음, 같은 위치에 단추 "Launch"를 누르면 우분투 터미널이 나오고 수분이상 시간이 
걸린다는 메시지가 나오는데 기다립니다. (WSL2 로 설정하고 하서는 시간이 더 걸렸습니다)

사용자명과 암호를 넣고 나면 설정이 끝납니다.

wsl -l -v
라고 명령을 내려, 해당 리눅스머신이 버전2 인가 확인해 보면 됩니다.

혹시 버전이 1로 나오면,

위와 같이

wsl --set-version Ubuntu 2
라고 업그레이드 가능합니다. (혹시 https://aka.ms/wsl2kernel 안내 메시지가 나오면 위와 같이 해당 패키지를 설치합니다)


5) Docker for Windows 설치

이제는 WSL 2 용 우분투가 설치되어 있는 상태에서 윈도우 용 Docker 를 설치합니다.

웹브라우저에서 "Install Docker Desktop on Windows"를 찾아 "Download from Docker Hub" 단추를 누르고,

"Get Docker" 를 눌러 실행하면,

처음 다운로딩하는 메시지가 나온다 음 위와 같이 나오면 "OK" 를 누르고,

위와 같이 "Close and log out" 을 눌러 리붓하면 설치를 마치게 됩니다.
(가상머신에서 돌리더라도 메모리가 적어도 4GB 정도 있어야 했습니다)

Docker Desktop 을 열어 설정을 보면 "Use the WSL 2 based engine" 이 체크되어 있는 것을 확인할 수 있습니다.

그러면 우분투 터미널에서,

docker version 
을 눌러 동작하고 있는 것을 확인할 수 있습니다.


6) docker-compose로 pypicloud 돌려보기

이전에 정리한 "docker-pypicloud" 를 돌려봅니다.

우분투 터미널에서

mkdir pypicloud
cd pypicloud
wget https://github.com/mcchae/docker-pypicloud/raw/main/docker-compose.yaml
wget https://github.com/mcchae/docker-pypicloud/raw/main/start.sh
wget https://github.com/mcchae/docker-pypicloud/raw/main/stop.sh
chmod +x *.sh

위와 같이 명령을 순서대로 내려 해당 파일들을 받아 sh 스크립트의 실행 권한을 넣었습니다.

./start.sh 
라고 실행을 하면 최초 docker 서비스를 방화벽에서 열겠냐 물어보고 "Allow access" 해 줍니다.

최초에 실행했을 때는 timeout 으로 에러가 한번 납니다.
./stop.sh
라고 내린다음 한번 더
./start.sh

를 하면,

위와 같이 메시지가 나옵니다. 이제,

윈도우에 Docker Desktop 에서 확인해 보면 위와 같이 실행되는 것을 확인할 수 있습니다.

우분투에서 docker ps 명령을 내려 확인해 보면, 8080 포트가 열려 있는 것을 확인할 수 있고,

이제 로컬 (또는 외부에서 이 윈도우)의 8080포트로 접속해 보면, pypicloud 를 이용할 수 있습니다.


어느 분께는 도움이 되셨기를 ..

덧글

댓글 입력 영역

구글애드텍스트