Docker는 오늘날 가장 널리 사용되는 컨테이너화 기술 중 하나이며, 이를 통해 애플리케이션을 독립형 컨테이너에서 실행할 수 있습니다. Docker의 중요한 기능은 컨테이너의 CPU 및 메모리 사용량을 관리하고 제한할 수 있다는 것입니다. 이는 애플리케이션의 고가용성과 안정성을 유지하는 데 중요합니다. 이 기사에서는 Docker 컨테이너의 메모리 크기를 제한하는 방법에 중점을 둘 것입니다.
1. Docker의 메모리 관리 이해
Docker에서는 각 컨테이너에 고유한 네임스페이스와 리소스 제한이 있습니다. 메모리 제한이 있는 컨테이너는 다음 명령을 사용하여 시작할 수 있습니다.
docker run -it --memory 512m --name example_container ubuntu:latest
이 예에서는 example_container라는 컨테이너를 만들고 메모리 제한을 512MB로 설정했습니다. 이 명령은 컨테이너에서 사용하는 기본 이미지인 ubuntu:latest도 지정합니다. "-it" 기호는 Docker에게 컨테이너의 stdin 및 stdout을 해당 터미널 세션에 연결하도록 지시하는 방법입니다.
위 명령은 다음 명령을 통해 컨테이너의 현재 메모리 사용량을 확인할 수 있습니다.
docker stats example_container
이 명령을 사용하면 컨테이너의 CPU 사용량, 메모리 사용량, 네트워크 전송 속도 등을 실시간으로 확인할 수 있습니다.
2. 컨테이너 메모리를 제한하는 방법
명령줄 옵션 외에도 컨테이너가 실행 중일 때 다음 방법을 사용하여 컨테이너의 메모리 사용량을 제한할 수도 있습니다.
1. command
"docker update" 명령을 사용하여 실행 중인 컨테이너의 메모리 제한을 수정할 수 있습니다. 다음 명령은 example_container의 메모리 제한을 1GB로 수정할 수 있습니다.
docker update --memory 1g example_container
2. docker-compose 사용
Docker Compose 환경에서는 "mem_limit" 키워드를 사용하여 컨테이너의 메모리 제한을 설정할 수 있습니다. 다음은 컨테이너 이름이 "db"이고 메모리 제한이 512MB로 설정된 컨테이너 구성 파일의 예입니다.
version: '3' services: db: image: mongo:4.4 mem_limit: 512m
이 예에서는 mongo:4.4 이미지를 컨테이너의 기본 이미지로 사용했으며, 이름을 "db"로 지정합니다. "mem_limit" 키워드에서 이 컨테이너의 메모리 제한을 512MB로 설정했습니다.
3. 컨테이너 메모리 제한을 테스트하는 방법
컨테이너의 메모리 제한이 적용되는지 확인하기 위해 벤치마크 도구 스트레스의 "매트릭스" 테스트와 같은 일부 메모리 집약적 작업을 컨테이너에서 실행할 수 있습니다. -ng. 다음은 더 많은 메모리를 차지하기 위해 "매트릭스" 테스트를 실행하는 예입니다.
docker exec example_container stress-ng --matrix 1 -t 10s
이 예에서는 "docker exec" 명령을 사용하여 실행 중인 컨테이너 example_container에서 스트레스-ng의 "매트릭스" 테스트를 실행합니다. 시간은 10초.
테스트 중에 다음 명령을 사용하여 컨테이너의 메모리 사용량을 관찰할 수 있습니다.
docker stats example_container
일반적으로 Stress-ng는 지정된 테스트 기간 동안 많은 메모리를 소비해야 합니다. 컨테이너가 지정된 메모리 제한만 성공적으로 사용하는 경우 이 테스트로 인해 메모리 부족 상태가 발생해야 합니다.
Summary
이번 글을 통해 Docker 컨테이너의 메모리 사용량을 제한하는 방법을 알아보았습니다. Docker는 컨테이너의 메모리 사용량을 제어하는 여러 가지 방법을 제공합니다. 컨테이너를 안정적으로 유지하고 가용성을 높이려면 컨테이너의 메모리 사용량을 제한해야 합니다. 실험과 벤치마크를 통해 컨테이너가 지정된 메모리 제한을 올바르게 준수하는지 확인할 수 있습니다.
위 내용은 도커 컨테이너의 메모리 크기를 제한하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!