본문 바로가기

DATA SCIENCE/Study

WSL에서 Docker 사용

윈도우에서 Docker를 쉽게 사용하는 법

 

Windows 10 이상부터 사용가능한 WSL을 이용해 docker를 사용하는 법을 다룬다.

 

공식 문서에서는 Windows 및 WSL 환경에서 Docker를 사용하기 위해 Docker Desktop을 설치한 후, WSL2 및 Visual Studio Code를 이용해 작업하라고 권장한다.

다만 Docker Desktop을 설치하기 귀찮거나, 설치하기 힘든 상황에 있는 경우를 대비해 문서로 정리한다.

이 경우 Docker 명령어를 실행할 때마다 앞에 sudo를 붙여야 하는 번거로움이 있다.

 

우선 사전에 WSL 혹은 WSL2를 설치한 환경이어야 한다.

만약 WSL이 설치된 환경이 아니라면 아래와 같이 'Windows 기능 켜기/끄기'에서 HyperVWSL(Windows Subsystem for Linux) 기능을 키고, 컴퓨터를 껐다 켜야 한다.

WSL 사용을 위한 Windows 기능 켜기/끄기

 

이후 Windows 터미널 혹은 cmd 창에 들어가 'wsl --install'을 입력해 설치해준다.

wsl install

만약 설치되어 있다면 위와 같은 화면이 나올 것이고, 이후 해당 명령어를 통해 여러 배포 버전을 설치할 수 있다.

일반적으로 Ubuntu를 추천(다만 여기선 다른 배포를 사용하는 경우를 대비해 kali-linux로 진행한다. 이로 인해 UI의 차이가 있을 수 있으나 대동소이하다)한다.

위에서 리스트업된 배포판 중 하나를 설치하면 다음의 화면과 같이 설치가 진행된다.

kali-linux 설치

설치가 끝나면 계정을 만드는 과정으로 들어가며, 다음과 같이 잠깐의 대기 시간 이후 해당 배포 환경의 WSL에 들어갈 수 있다.

계정 생성 전 대기
아이디 비밀번호 입력 후 접

만일 설치한 배포가 유일하거나, 기본 배포로 설정되어 있다면 CMD 창이나 Windows Terminal 창에서 wsl을 입력하는 것으로 접속할 수 있으며, 그 외에는 사용할 배포명을 입력해 들어가야 한다.

만약 기본 배포로 설정된 버전을 바꾸고 싶다면 다음 게시물을 참고하면 된다.

https://thebeworld.tistory.com/52

 

윈도우11 WSL2 default setting - 1(linux 버전 확인)

최근 윈도우11 환경 하에서 WSL2를 이용해 여러 작업을 진행하고 있습니다. 다만 아무래도 Linux나 Ubuntu 등을 사용해오지 않아 여러모로 어색한 점이 많고, 윈도우11 환경과 WSL2라는 툴이 최근에 나

thebeworld.tistory.com

 

설치한 배포에 들어간 이후에는 기본적인 세팅을 진행한다.

다음의 코드를 순차적으로 입력한다.

sudo apt-get update
sudo apt-get upgrade

위 코드를 실행하기 위해서는 이전의 계정 생성 과정에서 만든 비밀번호를 입력해야 하며, 그 이유는 sudo가 관리자 모드에서 실행시키는 것을 의미하기 때문이다.

 

참고로 kali-linux와 같은 배포는 그냥 입력해서는 접속이 안되는 경우가 있는데, 이때에는 'wsl -d kali-linux'와 같은 방식으로 입력해 접속할 수 있다.

wsl kail-linux 배포 진입

이제 기본적인 세팅이 끝났으면 우리가 사용할 docker를 설치해준다.

sudo apt install docker.io -y

위 명령어를 통해 docker를 자동적으로 설치할 수 있다.

다음으로는 이를 보다 편리하게 사용하고 관리할 수 있도록 Visual Studio Code와 연동해 사용할 것인데, 이를 위해선 우선 Desktop에서 Visual Studio Code를 설치해야 한다.

만약 설치가 되어있지 않다면 아래의 경로에서 VSCode를 설치해주도록 하자.

https://code.visualstudio.com/download

 

Download Visual Studio Code - Mac, Linux, Windows

Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.

code.visualstudio.com

 

이후엔 wsl 터미널에서 code를 입력하는 것으로 Visual Studio Code를 실행시킬 수 있으며, 해당 WSL 환경과 연동하기 위해 VSCode의 extension 중 wsl을 설치해준다.

Desktop에 VSCode를 설치한 이후 code . 를 입력하면 자동으로 설치 후 실행한다
Visual Studio Code에서 wsl 확장 설치

이후에는 vscode를 이용한 wsl 접속 및 작업 등이 용이하며, 이를 통해 Docker 등을 사용할 수 있다.

이때 Docker를 사용하기 위해서는 별도의 터미널에서 도커 엔진을 실행시킨 상태여야 하는데, 별도의 터미널을 띄운 후 다음과 같이 입력하면 자동으로 도커 엔진이 실행된다.

sudo dockerd

wsl : kali-linux에서 도커 엔진 실행
wsl : Ubuntu에서 도커 엔진 실행

이후 다른 터미널에서 도커 예제(hello-world)를 실행하면 정상적으로 결과를 확인할 수 있다.

wsl terminal에서 docker 예제 실행
VSCode Terminal에서 Docker 예제 실행

 

다만 위와 같이 도커 명령어를 입력할 때 매번 sudo를 입력해야 하는 번거로움이 남아있으며, 

이는 위에서 소개한 공식문서에 소개된 바와 같이 Docker Desktop을 설치 후 관련 설정을 해주면 해결된다.