Windows에서 Docker Desktop을 위한 WSL 2 모범 사례
Windows에서 Docker Desktop을 위한 WSL 2 모범 사례
이 페이지는 WSL 2를 사용해 Windows에서 Docker Desktop을 실행할 때의 권장 사항을 다뤄요. 버전 요구 사항과 파일시스템 성능을 포함해요.
본문
WSL 최신 상태 유지하기
항상 최신 버전의 WSL을 사용하세요. 최소한 WSL 버전 2.1.5는 꼭 써야 해요. 그렇지 않으면 Docker Desktop이 예상대로 동작하지 않을 수 있어요. 또한 Enhanced Container Isolation을 사용하려면 WSL 버전 2.6 이상인지 확인하세요. ECI가 최소 Linux 커널 버전 6.3.0에 의존하고, WSL 2.6+는 Linux 커널 6.6을 번들로 제공하기 때문이에요. 테스트, 개발, 문서는 가장 새로운 커널 버전을 기준으로 해요. 오래된 WSL 버전은 다음을 일으킬 수 있어요.
- Docker Desktop이 주기적으로 또는 업그레이드할 때 멈춤
- SCCM으로 배포 실패
vmmem.exe가 모든 메모리를 소비- 네트워크 필터 정책이 특정 객체가 아니라 전역으로 적용
- 컨테이너의 GPU 실패
바인드 마운트로 파일시스템 성능 최적화하기
파일을 바인드 마운트할 때 파일시스템 성능을 최대로 얻으려면, Linux 컨테이너에 바인드 마운트하는 소스 코드와 기타 데이터를 저장하세요. 예를 들어 Windows 파일시스템이 아니라 Linux 파일시스템에서 docker run -v :를 사용해요. Microsoft의 권장 사항도 참고할 수 있어요.
Linux 컨테이너는 원본 파일이 Linux 파일시스템에 저장되어 있을 때만 파일 변경 이벤트(inotify 이벤트)를 받아요. 예를 들어 일부 웹 개발 워크플로는 파일이 변경됐을 때 자동으로 리로드하기 위해 inotify 이벤트에 의존해요.
파일을 Windows 호스트 파일시스템에서 접근할 때보다 Linux 파일시스템에서 바인드 마운트할 때 성능이 훨씬 높아요. 그러므로 /mnt/c가 Windows에서 마운트된 docker run -v /mnt/c/users:/users는 피하세요. 대신 Linux 셸에서 docker run -v ~/my-project:/sources 같은 명령을 사용하세요. ~는 Linux 셸이 $HOME으로 확장해요.
CPU와 메모리 사용 제한하기
CPU나 메모리 사용이 걱정된다면 WSL 2 유틸리티 VM에 할당되는 메모리, CPU, 스왑 크기에 제한을 설정해요.