Windows에서 WSL 2와 Docker Desktop 설정하기
서론..
실무에서 개발 환경을 구축할 때 가장 중요한 점 중 하나는 모든 개발자가 정확히 동일한 환경에서 작업할 수 있도록 하는 것입니다. 만약 개발자마다 서로 다른 운영체제, 라이브러리 버전, 설정값 등을 사용하게 되면, 각자의 로컬 환경에서는 잘 동작하던 코드가 실제 서버나 다른 개발자의 환경에서는 제대로 작동하지 않는 문제가 자주 발생합니다. 이는 흔히 "내 컴퓨터에서는 잘 되는데?"라는 문제로 이어지며, 디버깅과 협업의 효율성을 크게 떨어뜨리는 원인이 됩니다.
이러한 문제를 효과적으로 해결하기 위해 등장한 기술이 바로 Docker입니다. Docker는 컨테이너라는 독립적이고 가벼운 가상화 환경을 제공하여 애플리케이션과 그 실행에 필요한 모든 의존성(라이브러리, 설정 등)을 하나의 이미지로 패키징합니다. 이 이미지를 사용하면 모든 개발자가 운영체제나 하드웨어에 관계없이 정확히 동일한 환경에서 작업할 수 있게 됩니다.
선배 개발자께서 Docker를 사용하는 이유로 예시로 들어주신 내용 중 하나가 Node.js였습니다. Node.js와 같은 런타임 환경을 로컬 컴퓨터에 직접 설치하여 관리하면 여러 가지 불편함이 발생할 수 있습니다. 특히 Node.js의 버전이 업그레이드될 때마다 기존 버전을 삭제하고 새로운 버전을 다시 설치하거나, 프로젝트마다 다른 버전을 요구할 경우 여러 버전을 동시에 관리하는 번거로움이 생깁니다. Docker를 활용하면 이러한 문제를 효율적으로 해결할 수 있습니다. Docker 컨테이너 내부에 특정 Node.js 버전을 설치하여 이미지를 생성하고 관리하면, 로컬 시스템에 직접 Node.js를 설치하거나 삭제할 필요 없이 간단히 이미지를 교체하거나 변경하는 방식으로 원하는 버전의 Node.js 환경을 빠르고 편리하게 구성할 수 있다고 합니다.
그렇다면 Windows 환경에서는 왜 Docker를 바로 설치하지 않고, 굳이 WSL2 위에서 Docker를 사용하는 걸까요?
Windows 운영체제는 기본적으로 리눅스와 구조 및 커널이 다르기 때문에 Docker를 직접 설치하여 사용할 경우 리눅스 기반 컨테이너와의 호환성 문제나 성능 저하가 발생할 수 있습니다. 이를 해결하기 위해 Microsoft는 WSL2(Windows Subsystem for Linux 2)라는 기술을 도입했습니다. WSL2는 Windows 내부에서 실제 리눅스 커널을 구동하여 리눅스 네이티브 애플리케이션을 거의 완벽하게 실행할 수 있도록 지원합니다. 따라서 WSL2 위에서 Docker를 실행하면 리눅스와 동일한 수준의 성능과 호환성을 얻을 수 있습니다.
결론적으로, 실무에서는 모든 개발자가 동일한 환경에서 작업하여 협업 효율성을 높이고 예측 불가능한 문제를 최소화하기 위해 WSL2 위에 Docker 기반의 통합된 개발 환경을 구축하는 것이 가장 좋은 방법입니다. 이를 통해 모든 팀원이 빠르고 안정적인 협업 환경에서 개발을 진행할 수 있게 됩니다.
0. Docker Desktop 이란?
- Docker Desktop은 컨테이너 기반 애플리케이션을 손쉽게 실행하고 관리할 수 있도록 돕는 GUI 도구
- Docker Desktop을 통해 Docker를 간편하게 설정하여 사용할 수 있음
- Windows의 경우 WSL 2(Linux용 Windows 하위 시스템, 버전 2)를 활용하여 Docker Desktop과 연동하여 사용해 볼 예정
1. WSL 활성화
1.1 Windows 기능 활성화
WSL 2를 사용하려면 먼저 Windows의 가상화 옵션을 활성화해야 합니다. Windows 기능을 활성화하는 방법은 두 가지가 있습니다.
방법 1 : WSL 설치를 위해 가상화 옵션 ON
방법 2 : Powershell 관리자 권한
- 시작 메뉴에서 PowerShell을 검색 후 관리자 권한으로 실행
- 아래 명령어 입력 후 실행
# Windows 기능 활성화
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
1.2 WSL 2 기본 버전 설정
- Linux 커널 업데이트 패키지 다운로드 및 설치
- WSL2 최신 패키지 다운로드
- 다운로드 후 설치 실행
- WSL 2를 기본 버전으로 설정
wsl --set-default-version 2
설정이 정상적으로 완료되면 WSL 2가 기본으로 적용됩니다.
2. Ubuntu 설치
이제 WSL 2에서 사용할 리눅스 배포판(Ubuntu)을 설치해야 합니다.
- Microsoft Store 실행 > Ubunbu 검색 > 최신 버전의 Ubuntu 설치
- 설치 완료 후 Ubuntu 앱 실행 시 최초 계정명과 비밀번호 설정 진행
2.1 WSL 2 적용 여부 확인
- 설치한 Ubuntu가 WSL 2로 정상 적용되었는지 확인하는 방법은 다음과 같습니다.
- PowerShell 관리자 권한으로 실행 후 다음 명령어 수행 :
- 출력 결과에서 Ubuntu의 버전이 2로 설정되어 있는지 확인합니다.
- 만약 1로 설정되어 있다면 아래 명령어를 입력하여 WSL 2로 변경합니다.
wsl --set-default-version 2
- 다음 명령어를 통해 Window 운영체제에서 리눅스 환경을 이용할 수 있음
wsl
3. Docker Desktop 설치
이제 Docker Desktop을 설치하여 Windows에서 Docker를 사용할 수 있도록 설정합니다.
3.1 설치 파일 다운로드
아래 공식 사이트에서 Docker Desktop for Windows를 다운로드합니다.
설치 파일을 실행하고 안내에 따라 설치를 진행합니다.
3.2 Docker Desktop 설정
설치가 완료되면 Docker Desktop을 실행하고 WSL 2 기반 엔진을 활성화합니다.
- Docker Desktop 실행
- Settings (설정) > General 이동
- Use the WSL 2 based engine 옵션 활성화
3.3 Docker 설치 확인
PowerShell을 관리자 모드로 실행한 후, WSL 환경으로 접속하여 Docker가 정상적으로 설치되었는지 확인합니다.
- Powershell 관리자 모드 > wsl > docker --version
wsl
docker --version
정상적으로 설치되었다면 Docker의 버전 정보가 출력됩니다.
4. 마무리
이제 Windows에서 WSL 2와 Docker Desktop을 활용할 준비가 완료되었습니다.
간단한 테스트를 위해 아래 명령어를 실행하여 Docker가 정상적으로 작동하는지 확인할 수 있습니다.
docker run hello-world
위 명령어가 정상적으로 실행되면 Windows 환경에서도 Docker 컨테이너를 활용할 수 있습니다!
다음 글에서는 Docker Desktop을 사용하지 않고 Docker를 설치하는 방법에 대해 작성해 보도록 하겠습니다.