🚀 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 및 메모리 리소스를 조절할 수 있습니다.

🔧 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 설정 시 주의할 점
- 너무 크게 설정하면 성능 저하 🚨
- Swap은 디스크를 사용하기 때문에 너무 많이 설정하면 속도가 느려질 수 있어.
- 일반적으로 RAM의 1~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

'Programming > Docker' 카테고리의 다른 글
[Docker] Docker 환경에 mysql 추가하기 (1) | 2024.04.12 |
---|---|
[Docker] 컨테이너 환경설정 딜레마. docker-compose.yml VS Dockerfile (1) | 2024.04.12 |
[Docker] Dockerfile와 docker-compose.yml 파일의 차이 (0) | 2024.04.11 |
[Docker] Mac OS에 Docker 설치하기 (1) | 2024.04.10 |
[도커/Docker] 윈도우 환경에 도커 설치 (0) | 2021.09.10 |