본문 바로가기
Programming/Windows

WSL2에서 Docker Desktop을 사용하지 않고 docker 설치하기..

by 신규하 2022. 8. 29.

Docker Desktop이 2022년 8월 31일 부터.. 250명 미만이고 년간 수익이 천만달러(약100억) 미만인 기업에서만 Docker Desktop을 무료로 사용 할 수 있다고 합니다. 개인이나 비영리는 계속 사용 가능 하고요.

그래서, Docker Desktop에서 벗어 날려고 자료를 좀 정리 해 봤습니다.

 

WSL에 Docker 설치하기

먼저 시스템에는 WSL2가 설치가 되어 있어야 합니다.

wsl이 설치가 되어 있지 않다면 아래 URL을 참고 해서 설치 해 주시면 됩니다.

https://docs.microsoft.com/ko-kr/windows/wsl/install

wsl의 배포판이 설치 되어 있지 않다면, 아래와 같이 wsl --list --online 이라고 하면 유효한 배포 목록이 나옵니다. 현재 우분투는 22.04가 윈도우 스토어에 있지만 여기는 20.04가 최신 입니다.

 wsl --install -d "Ubuntu-20.04"

설치가 완료 되었으면 docker를 아래와 같이 설치 해 줍니다.

sudo apt update
curl -sSL get.docker.com | sh
sudo usermod $USER -aG docker

설치 하다 보면.. 위와 같은 메시자가 나오는데.. 그냥.. 기다리시면 됩니다.

그리고, 아래와 같이 /etc/wsl.conf 파일을 열어서..

sudo vi /etc/wsl.conf

아래 내용을 입력 해 줍니다.

[boot]
command="/etc/init.d/docker start"

저장하고 닫고 나서 해당 파일에 실행 권한을 줍니다.

 sudo chmod 777 /etc/wsl.conf

그리고 exit로 쉘을 나가 줍니다.

exit

wsl을 wsl --shutdown으로 wsl을 종료 후 다시 wsl로 wsl을 시작 해 줍니다.

그러고 docker ps를 쳐 봐서.. 아래와 같은 화면이 나오면 정상 적으로 설치가 완료 된 상태 입니다.

> wsl --shutdown
> wsl
$ docker ps

 

 

Docker Compose 설치 하기

wsl 상태에서 아래와 같이 입력 해서 설치 해 줍니다.

sudo curl -SL https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

설치 확인을 아래와 같이 하시면 됩니다.

$ docker-compose version
Docker Compose version v2.7.0

 

 

PowerShell에서 docker 사용하기

단순히 명령어로 사용 하려고 하면, 아래와 같이 입력 해 주시면 사용이 가능 합니다.

wsl docker ps
wsl docker-compose --version

하지만, 간단하게 Alias만 해 주면 좀 더 편하게 docker를 사용 할 수 있습니다.

파워쉘에서 아래와 같이 입력해 줍니다.

notepad $PROFILE

메모장이 뜨고 여기에 아래의 내용을 입력해 줍니다.

Function Start-WslDocker {
    wsl docker $args
}
Function Start-WslDockerCompose {
    wsl docker-compose $args
}
Set-Alias -Name docker -Value Start-WslDocker
Set-Alias -Name docker-compose -Value Start-WslDockerCompose

이렇게 해주고 파워셀을 띄우면, 파워쉘에서 docker 명령어를 사용 할 수 있게 됩니다.

 

VSCODE에 Docker 설정하기

먼저 기존 docker extension이 설치가 되어 있다면 삭제를 해 주셔야 합니다.

 vscode에서 extension에서 wsl을 검색 합니다.

 Remote -WSL을 설치 합니다.

그리고, F1을 눌러서 remote-wsl: New WSL Window using Distro.. 를 선택 하시거나 왼쪽 밑 버튼을 눌러서 New WSL Window using Distro.. 를 선택 합니다.

그리고 현재 사용중인 WSL 이미지를 선택 합니다.

그러면, 새로운 vscode가 뜨면서 WSL 과 연결이 됩니다.

이 상태에서 Extension에서 Docker를 새로 설치를 해 줍니다.

그러면, 옆에 docker아이콘이 생기고 vscode에서 wsl의 docker가 접근이 됩니다.

이렇게만 세팅을 해 놓으면 docker desktop이 없더라도 툴까지 사용이 가능 해 집니다.

 

유용한 CLI

ctop

리눅스에 top과 비슷한 컨셉으로 docker의 프로세스 목록을 보여 줍니다.

wsl에서 apt 로 간단하게 설치가 가능 합니다.

sudo apt install ctop

lazydocker

서비스 부터 컨테이너 이미지, 볼륨까지 한눈에 볼 수 있고 관리가 가능 합니다. 

wsl에서 설치 해 주시면 됩니다. 설치 방법은 아래와 같습니다.

curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash

참고

댓글