반응형

🚀 Docker 사용 중 리소스가 부족하다면?

Docker를 사용하다 보면 여러 개의 컨테이너를 실행하게 되고, 결국 CPU와 메모리 리소스가 부족해지는 상황을 겪을 수 있습니다.

특히 Windows에서는 Docker가 WSL(Windows Subsystem for Linux) 을 기반으로 실행됩니다.

그래서 단순히 Docker 설정에서 CPU와 메모리를 변경하는 것이 아니라 WSL의 설정을 수정해줘야 합니다.

 

 

🛠 Docker 리소스 설정을 변경해야 하는 이유

Docker는 기본적으로 리눅스 기반으로 동작하는 시스템입니다.

Windows에서는 WSL 2 환경을 통해 리눅스 커널을 실행하고, 그 위에서 Docker가 컨테이너를 구동합니다.

 

Mac OS의 경우? Mac에서는 Docker가 GUI에서 직접 리소스(CPU, Memory)를 설정할 수 있도록 제공하지만, Windows에서는 이런 설정이 바로 적용되지 않습니다.

 

Windows에서는 WSL의 .wslconfig 파일을 직접 수정해야만 CPU 및 메모리 리소스를 조절할 수 있습니다.

 

 

Mac OS는 Linux 기반이기 때문에 Docker Desktop에서 바로 설정이 가능합니다.

 

 

🔧 WSL 설정 변경하여 Docker 리소스 조절하기

1️⃣ .wslconfig 파일 생성 및 수정

WSL 설정 파일은 C:\\Users\\사용자명 경로에 위치합니다. 만약 .wslconfig 파일이 없다면 직접 만들어야 합니다.

📌 파일 경로:

C:\\Users\\사용자명\\.wslconfig

⚠️ 파일 확장자가 wslconfig.txt 가 되지 않도록 주의하세요

📌 설정 파일 내용:

[wsl2]
memory=4GB   # 최대 메모리 사용량 설정 (예: 4GB)
processors=2  # CPU 코어 수 설정 (예: 2개)
swap=2GB     # 스왑 메모리 설정 (예: 2GB)

🔹 memory=4GB → Docker가 사용할 최대 메모리를 4GB로 설정

🔹 processors=2 → CPU 코어를 2개만 사용하도록 설정

🔹 swap=2GB → 부족한 메모리를 보충할 스왑 공간 2GB 설정

  • RAM 이 부족할 경우, 이를 보완하기 위해 디스크의 일부를 임시 메모리처럼 사용하는 기능

 

 

 

🔧 Docker에서 Swap 설정하는 이유

Docker에서 컨테이너가 사용하는 메모리를 제한해도, 컨테이너가 RAM을 초과해서 사용하려고 하면 swap을 활용할 수 있습니다.

즉, swap을 설정하면 RAM 부족으로 인해 컨테이너가 갑자기 종료되는 것을 방지할 수 있습니다.

 

 

 

⚠️ Swap 설정 시 주의할 점

  1. 너무 크게 설정하면 성능 저하 🚨
    • Swap은 디스크를 사용하기 때문에 너무 많이 설정하면 속도가 느려질 수 있어.
    • 일반적으로 RAM의 1~2배 정도로 설정하는 것이 좋음.
  2. SSD 사용이 권장됨
    • Swap은 지속적으로 읽고 쓰는 작업이 많기 때문에, SSD가 아닌 HDD에서는 성능이 크게 떨어질 수 있음.

 

 

 

🔧 Docker Resource 설정하기

1. PowerShell에서 다음 명령어 실행:

notepad C:\\Users\\user\\.wslconfig

 

 

2. 내용 입력 후 저장

[wsl2]
memory=4GB
processors=4
swap=2GB

 

 

3. Docker Desktop 및 WSL 종료

taskkill /IM "Docker Desktop.exe" /F

wsl --shutdown

 

 

4. WSL 재시작 및 wsl root 이동(아래 명령어도 실행/wsl root 이동)

wsl

 

 

5. 스펙 확인 명령어 실행

free -h

반응형

+ Recent posts