이제라도 기록하기

[Docker] 컨테이너 메모리 사용 제한 방법 본문

Settings/Docker

[Docker] 컨테이너 메모리 사용 제한 방법

sssky00 2024. 6. 3. 01:46

1. 도커 메모리 제한의 필요성

도커 컨테이너는 기본적으로 호스트 시스템의 모든 자원을 공유합니다. 따라서 하나의 컨테이너가 과도하게 메모리를 사용할 경우 다른 컨테이너나 호스트 시스템 전체에 영향을 줄 수 있습니다. 이를 방지하기 위해 각 컨테이너의 메모리 사용을 제한하는 것이 중요합니다.

 

2. 도커 메모리 제한 옵션

도커에서는 컨테이너의 메모리 사용을 제한하기 위한 다양한 옵션을 제공합니다. 주요 옵션은 다음과 같습니다:

  • --memory 또는 -m: 컨테이너의 최대 메모리 사용량 설정
  • --memory-swap: 컨테이너가 사용할 수 있는 스왑 메모리 양 설정
  • --memory-reservation: 컨테이너가 사용할 수 있는 최소 메모리 양 설정

여기서 swap 메모리는 컴퓨터 시스템에서 물리적 메모리(RAM)가 부족할 때 사용하는 디스크 기반의 가상 메모리입니다. 메모리 부족 시 사용하지 않는 메모리 페이지를 디스크의 스왑 공간으로 옮겨 일시적으로 메모리 사용량을 줄이는 역할을 합니다.

 

3. 메모리 제한 설정 

도커 컨테이너를 생성할 때 메모리를 제한하는 방법은 다음과 같습니다.

 

3.1. 최대 메모리 사용량 제한

컨테이너가 최대 512MB의 메모리를 사용하도록 제한하려면 다음과 같이 설정합니다.

docker run -d -m 512m --name my_container my_image
 
 

3.2. 스왑 메모리 사용량 제한

스왑 메모리를 포함하여 컨테이너가 최대 1GB를 사용할 수 있도록 설정하려면 다음과 같이 설정합니다.

docker run -d -m 512m --memory-swap 1g --name my_container my_image
 
 

3.3. 최소 메모리 예약

컨테이너가 최소 256MB의 메모리를 사용할 수 있도록 설정하려면 다음과 같이 설정합니다.

docker run -d --memory-reservation 256m --name my_container my_image
 
 

4. 설정 확인

설정한 메모리 제한이 적용되었는지 확인하려면 docker stats 명령어를 사용하여 컨테이너의 리소스 사용량을 모니터링할 수 있습니다!

docker stats my_container