본문 바로가기
카테고리 없음

[WSL]WSL로 도커 사용해서 성능 높이기

by sighan 2023. 12. 24.
반응형

 

현재 윈도우 사용자시라면 WSL version 2 설치 후 docker desktop 설치하시면 wsl이랑 통합되서 자동으로 wsl에서 도커 사용가능 합니다. 따라서 직접 wsl에 도커 설치하지 않고 window에 docker desktop 설치하시면 됩니다. 

(docker desktop을 사용해서 wsl에서 도커를 실행할 때 메모리 누수가 발생하면 직접 wsl에 도커 설치해서 사용학세요. docker compose 명령어가 안될 수도 있지만 docker-compose로 대신 사용하면 됩니다.)

 

1. WSL 업데이트:

WSL을 최신 상태로 업데이트하고, WSL 2를 사용하고 있는지 확인하세요.

 

더보기

WSL(Windows Subsystem for Linux)이 버전 2인지 확인하는 방법은 간단합니다. 다음 단계를 따라서 확인할 수 있습니다:

 

Windows PowerShell 또는 명령 프롬프트 실행:

  • Windows 검색에서 'PowerShell'을 검색하고, '관리자 권한으로 실행'을 선택하거나,
  • 'cmd'를 검색하여 명령 프롬프트를 엽니다.

(WSL 터미널 아님)

 

WSL 버전 확인:

  • 다음 명령을 실행하여 설치된 WSL 버전을 확인합니다:
wsl -l -v

이 명령은 설치된 모든 Linux 배포판과 각 배포판의 WSL 버전을 보여줍니다.

 

버전 정보 확인:

  • 출력된 목록에서 각 배포판 옆에 'VERSION' 열에 표시된 숫자를 확인합니다. '2'라고 표시되면 해당 배포판은 WSL 2를 사용하고 있는 것입니다.

예시 출력:

  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2

여기서 'Ubuntu-20.04'는 WSL 2를 사용하고 있음을 나타냅니다.

만약 모든 배포판이 WSL 1을 사용하고 있고 WSL 2로 업그레이드하고 싶다면, WSL 공식 문서에 있는 지침에 따라 WSL 2로 업그레이드할 수 있습니다. WSL 2는 향상된 파일 시스템 성능과 풀 Linux 커널을 제공하여 개발 경험을 개선합니다.

 

WSL에 직접 docker을 설치하지 않고 윈도우에서 Docker Desktop 사용하여 WSL에 연결하는 법

2. Docker Desktop 설치: Windows용 Docker Desktop을 설치합니다. 이는 WSL에서도 Docker를 사용할 수 있게 해줍니다.

 

WSL 2 설정: Docker Desktop 설치 후, 설정에서 'Use the WSL 2 based engine' 옵션을 활성화합니다. 보통 자동으로 설정되어 있습니다.

WSL에서 Docker 실행: WSL 터미널을 열고, docker 명령어를 사용하여 Docker가 제대로 작동하는지 확인합니다. 예를 들어, docker run hello-world 명령어로 Docker가 정상적으로 작동하는지 테스트할 수 있습니다.


 

 

 

WSL(Windows Subsystem for Linux) 환경 내부에 Docker를 직접 설치하는 방법은 다음과 같습니다. 

WSL에 직접 Docker 설치하기

1. WSL 업데이트:

WSL을 최신 상태로 업데이트하고, WSL 2를 사용하고 있는지 확인하세요.

 

2. Docker 설치:

WSL 터미널을 열고, 다음 명령어를 사용하여 Docker를 설치합니다.

sudo apt update
sudo apt install docker.io

 

 

3. Docker 서비스 시작:

다음 명령어를 통해 Docker가  Active: active (running) 중인지 알 수 있습니다.

sudo systemctl status docker

실행중이 아니라면

 

Docker 서비스를 시작합니다.

sudo service docker start

WSL을 재시작할 때마다 Docker 서비스를 수동으로 시작해야 할 수 있습니다.

 

 

4. 사용자 권한 설정:

Docker 명령어를 sudo 없이 실행할 수 있도록 사용자를 Docker 그룹에 추가합니다.

sudo usermod -aG docker $USER

이 변경사항을 적용하려면, WSL 세션을 종료하고 다시 시작하세요.

 

 

 

Docker 작동 테스트:

Docker가 제대로 설치되었는지 테스트합니다.

docker run hello-world

이 명령은 Docker가 성공적으로 작동하고 있는지 확인하기 위한 테스트 이미지를 실행합니다.

성공적으로 작동하면 Hello from Docker! 라는 문구가 보일 것입니다.

 

 

Docker Compose 설치 (선택 사항):

  • Docker Compose를 사용하려면 별도로 설치해야 합니다.

공식 Docker Compose 저장소에서 다운로드하고 설치하는 방법.

1.  WSL 터미널에서 다음 명령어를 사용하여 Docker Compose를 다운로드하고 설치합니다.

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 

2. WSL의 기본 저장소에서 간편하게 설치하는 것이 아니기 때문에 실행 권한을 직접 부여해야 합니다.

sudo chmod +x /usr/local/bin/docker-compose

3. 설치가 완료되었는지 확인합니다.

docker-compose --version

 

 

WSL 세션 시작:

  • VS Code에서 'Extensions' 뷰를 열고  WSL이라는 확장자를 설치 후 'View' > 'Command Palette...'를 열고 (Ctrl+Shift+P 또는 Cmd+Shift+P), 'Remote-WSL: New Window'를 검색하고 실행합니다.
  • 이렇게 하면 WSL 세션에서 새 VS Code 창이 열립니다.

확장 설치:

  • WSL 세션에서, 'Extensions' 뷰를 열고 해당 Docker라는 확장자를 검색합니다.
  • 확장 옆에 'Install in WSL: Ubuntu' (또는 사용 중인 WSL 배포판에 따라 다를 수 있음) 버튼이 있습니다. 이 버튼을 클릭하여 WSL 환경에 Docker 확장자를 설치합니다.

확인 및 사용:

  • 설치가 완료되면, WSL 환경에서 Docker 확장자를 사용할 수 있습니다.
  • 원격 확장이기 때문에, 로컬 환경이 아닌 WSL 환경에서만 활성화되고 사용됩니다.

 

주의 사항

  • WSL 2는 Docker와 더 나은 호환성과 성능을 제공합니다. WSL 1에서는 Docker가 제대로 작동하지 않을 수 있습니다.
  • 사용자 권한 설정 후에는 WSL 세션을 완전히 종료하고 다시 시작해야 변경사항이 적용됩니다.
  • WSL에서 Docker를 사용하는 경우, Windows 호스트와의 네트워크 통합이 제한될 수 있습니다. Docker Desktop의 WSL 통합이 더 강력한 네트워킹 기능을 제공합니다.

이 지침을 따라 WSL 내부에 Docker를 설치하고 설정할 수 있습니다. 이 방법은 Windows 환경에서 Linux 개발 도구를 활용하고자 할 때 특히 유용합니다.

 

 

 

 

 

WSL(Windows Subsystem for Linux)에서 Docker를 직접 실행하는 경우와 Docker Desktop for Windows를 사용하는 경우 간에는 몇 가지 중요한 차이점이 있으며, 이들 사이의 충돌 가능성을 고려할 필요가 있습니다.

Docker Desktop for Windows와 WSL의 Docker

Docker Desktop for Windows:

  1. 간편한 설치 및 설정: Docker Desktop은 Windows에서 Docker를 사용하기 위한 통합 환경을 제공합니다. 설치가 간단하며, Docker Engine, Docker CLI, Docker Compose 등이 포함되어 있습니다.
  2. GUI 기반 관리: Docker Desktop에는 사용자 친화적인 그래픽 인터페이스가 포함되어 있어 이미지 관리, 컨테이너 상태 확인, 설정 변경 등을 용이하게 합니다.
  3. WSL 2 통합: 최신 버전의 Docker Desktop은 WSL 2와 통합되어 있어, WSL 2의 리눅스 배포판에서도 Docker 명령어를 사용할 수 있게 해줍니다.
  4. 자원 관리: Docker Desktop은 Windows에서 Docker가 사용하는 리소스(예: CPU, 메모리)를 관리하고 조정하는 기능을 제공합니다.

 

WSL에서 직접 Docker 실행:

  1. 리눅스 환경에서의 직접적인 설치: WSL에 Docker를 설치하는 것은 리눅스 배포판에 Docker를 설치하는 것과 유사합니다. 이는 Docker Desktop보다 더 많은 설정과 조정이 필요할 수 있습니다.
  2. 자원 사용의 유연성: WSL에서 Docker를 직접 사용하면, Docker가 사용하는 시스템 리소스에 대한 더 많은 제어를 할 수 있습니다.
  3. 고급 사용자를 위한 환경: WSL에 Docker를 직접 설치하는 방식은 고급 사용자나 개발자들에게 적합하며, 특정 사용 사례에 대해 더 많은 맞춤 설정을 할 수 있습니다.

 

 

충돌 가능성

  • 포트 충돌: Docker Desktop과 WSL 내의 Docker가 동시에 실행되면, 동일한 포트를 사용하려는 충돌이 발생할 수 있습니다. 특히, Docker는 특정 포트를 사용하여 API 서버와 통신합니다.
  • 환경 설정: Docker Desktop과 WSL 내의 Docker 간에 환경 설정이 달라서, 동일한 컨테이너 이미지나 서비스에 대한 다른 동작을 유발할 수 있습니다.

 

반응형