이 가이드는 Docker Desktop을 사용하지 않고 WSL에서 Docker 설치 방법에 대해 설명합니다.
Windows 10 및 11에서 Docker 컨테이너 플랫폼을 설치하는 방법은 두 가지가 있습니다.
- Windows용 Docker Desktop(Hyper-V 및 Windows 컨테이너 기능) 앱으로 설치
- Windows Subsystem for Linux(WSL2) 환경에서 Docker Engine 설치
이 문서에서 살펴볼 WSL에서 Docker Engine을 사용하는 장점은 다음과 같습니다.
- Docker Desktop은 Pro, Enterprise Edition 필요, Docker Engine은 Home에서 사용 가능
- Docker Desktop 실행을 위한 Hyper-V 가상 머신 추가 및 컨테이너 리소스 필요
- Docker Desktop은 소규모 기업 및 개인 프로젝트의 경우 무료지만, 그 외 유료 구독 필요
Windows 11에서 Docker Desktop 없이 WSL에서 Docker 설치
이미 Windows 환경에서 사용 중인 Linux 배포판 중 하나를 사용하여, WSL2(Windows Subsystem for Linux) 환경이 준비되어 있다면 두 번째 단계로 바로 이동하세요.
01 Windows 11에서 Ubuntu-24.04 WSL 설치

키보드 단축키 Win + R 키를 눌러 실행 대화 상자를 열고 wt 입력 후 Ctrl + Shift + Enter 키를 눌러 관리자 권한으로 터미널을 실행합니다.

다음 명령을 입력하고 Enter 키를 눌러 설치할 수 있는 배포판 목록을 확인합니다.
wsl.exe --list --online

다음 명령을 입력하고 Enter 키를 눌러 Ubuntu 24.04 배포판을 설치합니다.
wsl.exe --install Ubuntu-24.04
※ Ubuntu 외에도 Debian, Kali Linux, Oracle Linux, OpenSUSE 및 SUSE Linux Enterprise Server 등 사용자가 Docker Engine을 설치하려는 다양한 배포판을 설치할 수 있습니다.

터미널에서 wsl.exe 명령을 실행하고 사용자 계정 및 비밀번호를 입력합니다.
모든 단계를 완료하면 WSL2 환경에서 Docker Engine을 설치할 수 있습니다.
🔗 Windows 11 WSL(Linux용 Windows 하위 시스템) 설치 방법
02 WSL에서 Docker 설치 방법
Windows 11 WSL 환경에서 Docker Engine을 설치하려면 다음 단계를 수행합니다.

키보드 단축키 Win + R 키를 눌러 실행 대화 상자를 열고 wt 입력 후 Ctrl + Shift + Enter 키를 눌러 관리자 권한으로 터미널을 실행합니다.

다음 명령을 입력하고 Enter 키를 눌러 WSL2를 사용하고 있는지 확인합니다.
wsl --version
WSL2 환경이 아닌 경우 다음 명령을 입력하고 Enter 키를 누릅니다.
wsl --set-default-version 2

WSL 기본 이미지를 설정하고, 연결하려면 다음 명령을 입력하고 Enter 키를 누릅니다.
wsl --setdefault Ubuntu-24.04
wsl.exe
WSL에서 다음 명령을 입력하고 Enter 키를 눌러 패키지를 업데이트합니다.
sudo apt-get update && sudo apt-get upgrade -y

다음 명령을 입력하고 Enter 키를 눌러 Docker Engine을 설치합니다.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
모든 단계를 완료하면 WSL2 환경에서 Docker Engine이 설치됩니다.
🔦 참고 : WSL에서 Docker Desktop을 설치하라는 메시지는 무시하세요.

다음 명령을 입력하고 Enter 키를 눌러 사용자를 Docker 그룹에 추가합니다.
sudo usermod -aG docker $USER

다음 명령을 입력하고 Enter 키를 눌러 Docker Engine 및 Compose가 설치되었는지 확인합니다.
docker --version
docker compose version
03 WSL에서 Docker 설정 및 실행 방법
Windows Subsystem for Linux 2 환경에서 Docker 설치 후 Daemon이 자동으로 시작되도록 구성하려면 다음 단계를 수행합니다.

WSL은 현재 “systemd”을 완벽하게 지원합니다.
다음 명령을 입력하고 Enter 키를 눌러 Systemd 활성화 여부를 확인합니다.
cat /etc/wsl.conf
명령 실행 후 출력 결과를 확인합니다.
[boot]
systemd=true

다음 명령을 입력하고 Enter 키를 눌러 Linux init system으로 Systemd가 사용되고 있는지 확인합니다.
stat /sbin/init
/sbin/init 파일이 /lib/systemd/systemd에 대한 심볼릭 링크가 설정되어 있다면 “Systemd”가 사용되고 있습니다.

Docker Engine 서비스를 실행하고 자동 시작을 활성화합니다.
sudo systemctl enable --now docker.service

다음 명령을 입력하고 Enter 키를 눌러 서비스 상태를 확인합니다.
systemctl status docker.service

호스트 터미널에서 다음 명령을 입력하고 Enter 키를 눌러 WSL을 종료하고 다시 시작합니다.
wsl --shutdown

WSL에서 다음 명령을 입력하고 Enter 키를 눌러 Docker 컨테이너를 실행합니다.
docker run hello-world
hello-world Docker Engine은 Docker Hub에서 데모 컨테이너를 다운로드하고 실행합니다 .

최신 Linux 버전(Ubuntu 22.04, Debian 10 이상)은 방화벽 관리에 iptables 대신 nftables를 사용하며, WSL에서 nftables를 기본적으로 지원하려면 Linux 커널 5.8 이상이 필요합니다.
🔗 Windows 11 WSL2 Ubuntu 20.04 버전 22.04 업그레이드 방법
이전 커널에서 네트워크가 제대로 작동하려면 iptables 호환성을 활성화해야 합니다.
sudo update-alternatives --config iptables
위 명령을 실행하고 WSL 사용자 계정에 대한 비밀번호 입력 후 iptables-legacy 모드를 선택합니다.

모든 단계를 완료하면 Windows 터미널에서 WSL의 Docker 명령을 실행할 수 있습니다.
Docker 명령어를 실행하기 전에 반드시 wsl 명령을 지정해야 합니다.
예를 들어 사용 가능한 Docker 이미지 목록을 확인하려면 다음과 같이 입력하고 Enter 키를 누릅니다.
wsl docker images
이제 Windows 환경에서 Docker 컨테이너를 개발하고 실행할 수 있습니다.
마치며
Docker Desktop 앱 없이 WSL 환경에서 Docker Engine을 설치하고 사용하는 방식은 불필요한 리소스 사용을 줄이면서, 보다 가볍고 유연한 개발 환경을 구축할 수 있는 장점이 있습니다.
특히 WSL2(Windows Subsystem for Linux 2) 기반의 Linux 환경에서 Docker를 직접 구성하면, 실제 서버와 유사한 환경을 유지하면서 Windows와 연동까지 자연스럽게 활용할 수 있습니다.
이는 개발, 테스트, 배포까지 이어지는 전체 작업 순서를 보다 효율적으로 만들 수 있습니다.
다만 Docker Desktop과 달리 일부 기능은 사용자가 수동으로 설정해야 하며, 서비스 관리나 네트워크 설정 등을 직접 이해하고 다뤄야 한다는 점은 고려하시기 바랍니다.


