WSL에서 Docker 사용하기
WSL을 사용하게 되면서 VM을 거의 사용하지 않게 되었다. 성능이 필요한 작업들은 서버에 SSH로 붙어서 작업하는 편이고, 그렇지 않은 간단한 테스트들을 진행할때 VM을 이용하는 편이었는데 WSL은 그러한 간단한 작업들을 수행하기에 충분한 활용성을 보여주었다.
다만, 나는 업무 특성상 도커를 사용할 일이 많은데 WSL은 내부적으로 리눅스커널 위에서 동작하는 시스템이 아니다 보니, 기본 설정만으로는 WSL에서 도커를 설치하여 사용하는데 어려움이 있어, 내가 사용하고 있는 편법을 공유하고자 한다.
환경 소개
내가 WSL과 Docker를 편리하게 사용하기 위해 쓰는 환경을 공유한다.
WSL
당연히 WSL이 기본적으로 설치가 되어있어야 한다. WSL설치는 링크를 참고하면 간단하게 할 수 있다.(MS Store에서 설치하는 것 외에도 기능 활성화를 몇가지 해줘야하니 링크참고 꼭 하는걸 추천함)
Docker
Windows용 Docker Desktop이 설치되어 있어야 한다. 설치는 도커 홈페이지에서 쉽게 다운로드하여 진행할 수 있다.
Mobaxterm
내가 개인적으로 굉장히 애용하는 터미널 프로그램이다. 터미널 프로그램 계의 종합 선물세트라고 할 수 있는데, 이거 하나 있으면 웬만한 원격작업은 다 할 수 있다고 본다. 기능중에 WSL연결도 지원하고 있어서 소개해 본다. 설치파일은 홈페이지를 통해 다운로드할 수 있다.
Docker 실행하기
사실 위에 준비해줘야할 환경만 제대로 세팅되어 있다면, WSL에서 docker를 사용하기 위해 별도의 추가 설정을 할 필요는 없다. 편리하게 사용하기 위한 설정만 있을 뿐. 이 꼼수가 가능하지 않을까 하고 생각했던 이유는 단순하다. WSL이 완벽한 리눅스가 아니라, 윈도우 커널위에서 동작하는 Pico Process 이기 때문에 실행에 대한 출력결과가 텍스트밖에 없는 docker의 경우, exe파일이라도 실행이 가능하지 않을까 하는 호기심이었다.
결과는 성공적이었다. docker.exe
를 직접 실행해 주었더니, docker.exe 명령어의 실행 결과가 WSL 화면에서 정상적으로 출력되는 모습이다.
실제처럼 사용하기 위해 ~/.bashrc
파일에 다음과 같은 내용을 추가해 주면 끝이다. (docker-compose 명령은 선택사항이다.)
alias docker='/mnt/c/Program\ Files/Docker/Docker/resources/bin/docker.exe'
alias docker-comepose='/mnt/c/Program\ Files/Docker/Docker/resources/bin/docker-compose.exe'
반영내용을 확인하기 위해 쉘을 재시작 하거나 . ~/.bashrc
명령을 입력한 뒤 docker 명령어를 테스트 해보면 된다.