기술 가이드

Docker Desktop에서 CPU 및 메모리 사용량 모니터링하는 방법

7 min read DevOps 업데이트됨 22 Oct 2025
Docker Desktop CPU·메모리 모니터링 가이드
Docker Desktop CPU·메모리 모니터링 가이드

Docker Desktop의 내장 대시보드, Resource Usage 확장과 터미널의 docker stats 명령을 조합하면 컨테이너별 실시간 CPU·메모리·디스크·네트워크 사용을 효과적으로 추적할 수 있습니다. 문제 식별용 체크리스트, 역할별 권장 작업, 간단한 플레이북과 명령 스니펫을 통해 모니터링 루틴을 표준화하세요.

소개

Docker Desktop 모니터 리소스 뷰

Docker Desktop에서 CPU와 메모리 사용량을 모니터링하면 컨테이너 성능과 시스템에 미치는 영향을 정확히 파악할 수 있습니다. 본 가이드는 내장 대시보드, Resource Usage 확장, 터미널 기반 명령어를 포함해 실무에서 바로 쓸 수 있는 절차, 체크리스트, 대안 도구를 제공합니다.

중요 용어 1줄 정의

  • 컨테이너: 애플리케이션과 그 실행 환경을 격리한 경량 실행 단위입니다.
  • VM 레이어: Docker Desktop이 Windows나 macOS에서 컨테이너를 실행하기 위해 사용하는 가상화 계층입니다(예: WSL2, Hyper-V, HyperKit).

왜 Docker Desktop에서 리소스 관리가 필요한가

Docker Desktop은 가상화된 환경(Windows의 경우 WSL2/Hyper-V, macOS의 경우 HyperKit)에서 컨테이너를 실행합니다. 이 가상 머신 계층은 일관된 동작을 제공하지만 추가 오버헤드를 발생시킵니다. 그 결과 컨테이너 워크로드뿐 아니라 Docker Desktop 자체의 백그라운드 프로세스도 상당한 리소스를 소모할 수 있습니다.

리소스 관리는 다음 이유로 중요합니다.

  • 시스템 응답성 유지: CPU·메모리 과다 사용 시 전체 시스템이 느려질 수 있습니다.
  • 원인 식별: 특정 컨테이너가 문제인지, Docker 자체인지 구분해야 합니다.
  • 비용·개발 생산성: 로컬 개발 환경의 비효율을 줄이면 개발 생산성이 올라갑니다.

Docker는 CPU 코어 수 제한, 메모리 상한 설정, 디스크 정리 기능을 제공하여 과도한 리소스 소비를 제어할 수 있습니다. 이들을 적절히 활용하려면 먼저 모니터링으로 어느 쪽이 많이 사용하는지 파악해야 합니다.

Docker Desktop 대시보드로 CPU와 메모리 모니터링하기

Docker Desktop의 내장 대시보드는 그래픽 인터페이스로 실시간 리소스 사용량을 한눈에 보여 줍니다. 명령어 사용 없이 빠르게 상태를 확인할 수 있어 초보자에게 가장 쉬운 방법입니다.

  1. Docker Desktop을 엽니다.
  2. 왼쪽 사이드바에서 “Containers” 섹션으로 이동합니다.
  3. 각 컨테이너 카드에서 실시간 CPU와 메모리 사용량을 확인합니다.

Docker Desktop UI에서 리소스 모니터링

컨테이너를 클릭하면 로그, 환경 변수, 실행 중인 프로세스 등 더 상세한 정보를 볼 수 있습니다. 여기에는 컨테이너별 CPU, 메모리, 디스크, 네트워크 사용의 실시간 수치가 포함됩니다.

특정 컨테이너의 리소스 사용 세부 정보

장점

  • 사용이 간편하고 시각적임
  • 빠르게 문제 컨테이너를 식별 가능

한계

  • 장기 데이터 보존/히스토리 분석 기능은 부족
  • 대규모 컨테이너 환경에서는 정보가 산만할 수 있음

Resource Usage 확장으로 모니터링 강화하기

Resource Usage 확장은 대시보드보다 상세한 전용 화면을 제공합니다. 설치 후 더 편리한 필터와 그래프 기반 시각화를 통해 스파이크나 비정상 패턴을 찾아내기 쉽습니다.

  1. Docker Desktop 왼쪽 사이드바에서 “Extensions”로 이동합니다.
  2. 검색창에 “Resource Usage”를 입력하고 Install을 클릭합니다.

Resource Usage 확장 설치 화면

설치가 완료되면 사이드바에 확장 아이콘이 추가됩니다. 클릭하면 각 컨테이너의 CPU·메모리 사용량, 디스크 I/O, 네트워크 활동을 그래프와 표로 확인할 수 있습니다. 컨테이너를 필터링하고 정렬해 자원 소모 상위 항목을 빠르게 찾을 수 있습니다.

Resource Usage 확장 액세스 화면

Chart View로 전환하면 시간 축에 따른 사용량 그래프가 표시되어 스파이크 탐지에 유리합니다.

리소스 사용 그래프 보기

장점

  • 그래프 기반의 시각화로 이상 패턴 식별 용이
  • 필터/정렬 기능으로 상위 리소스 소비자 탐색 편리

한계

  • 일부 고급 지표나 장기 보관은 지원하지 않음(전용 APM 필요)

터미널에서 docker stats로 실시간 추적하기

docker stats 명령은 터미널에서 컨테이너의 실시간 CPU·메모리·디스크·네트워크 사용량을 스트리밍합니다. Docker Desktop 내 터미널을 사용하거나 외부 터미널에서 실행할 수 있습니다.

docker stats

실행하면 각 컨테이너의 CPU 사용률, 메모리 사용량(사용/한도), 네트워크 및 블록 I/O 등이 실시간으로 출력됩니다. 스트리밍을 중단하려면 Ctrl+C를 누릅니다.

docker stats로 리소스 모니터링

특정 컨테이너만 모니터링하려면 컨테이너 이름이나 ID를 지정합니다.

docker stats openwebui

특정 컨테이너 docker stats

장점

  • 터미널 환경에서 경량·실시간 모니터링 가능
  • 스크립트로 자동화하기 쉬움

한계

  • 그래프화나 장기 보관, 알람 기능은 없음

실무용 모니터링 플레이북(간단 SOP)

  1. 우선순위 정의: 로컬 개발, CI, 프로덕션과 같은 환경별 우선순위를 정합니다.
  2. 기본 체크: Docker Desktop 대시보드로 모든 컨테이너의 상태를 확인합니다.
  3. 심층 분석: 리소스 소비가 큰 컨테이너를 Resource Usage 확장 또는 docker stats로 상세 분석합니다.
  4. 조치: 컨테이너별 리소스 제한(예: CPU, 메모리)을 적용하거나 불필요한 이미지/볼륨을 정리합니다.
  5. 검증: 변경 후 동일한 도구로 리소스 사용이 개선됐는지 확인합니다.
  6. 문서화: 문제 원인, 조치 내용, 교훈을 간단히 기록합니다.

간단 플레이북 예시

  • 증상: 전체 시스템 느려짐
  • 탐지: 대시보드에서 CPU 사용률 급증 확인
  • 분리: Resource Usage 확장으로 상위 컨테이너 식별
  • 해결: 해당 컨테이너의 메모리 제한 설정 또는 프로세스 조사
  • 검증: docker stats로 소비 감소 확인

역할별 체크리스트

개발자

  • 로컬 컨테이너를 실행할 때 메모리와 CPU 제한을 권장값으로 설정했는가?
  • 불필요한 컨테이너/이미지를 정기적으로 삭제하는가?
  • 개발 중 리소스 스파이크를 로깅하는가?

데브옵스

  • Docker Desktop 설정(가상머신 메모리·CPU 할당)을 팀 표준에 맞게 관리했는가?
  • 장기 모니터링이 필요한 워크로드에는 Prometheus/Grafana 같은 솔루션을 사용했는가?
  • 자동화 스크립트로 정기적인 정리 작업을 실행하는가?

QA/테스터

  • 성능 테스트 동안 리소스 사용을 기록했는가?
  • 테스트 케이스에서 리소스 기준(예: 메모리 상한)을 충족하는가?

진단을 위한 명령어 스니펫 모음

  • 모든 컨테이너 실시간 보기
docker stats
  • 특정 컨테이너만 보기
docker stats CONTAINER_NAME_OR_ID
  • 컨테이너 메모리 제한 예시(컨테이너 재생성 필요)
docker run -d --name myapp --memory=512m --cpus=1 myimage
  • 현재 실행 중인 컨테이너의 프로세스 보기
docker top CONTAINER_NAME
  • 사용하지 않는 이미지, 중지된 컨테이너, 네트워크, 빌드 캐시 정리
docker system prune -a

주의: docker system prune -a는 사용하지 않는 이미지와 컨테이너를 모두 삭제하므로 필요한 항목이 없는지 반드시 확인하세요.

언제 이 방법들이 실패하는가(한계와 주의점)

  • 장기 보관(히스토리)와 경고·알림이 필요한 경우: 내장 도구는 적합하지 않습니다. Prometheus, Grafana, 또는 상용 APM을 사용하세요.
  • 분산 환경(다수의 호스트) 모니터링: Docker Desktop은 로컬 개발용이므로 다중 호스트/클러스터 모니터링에는 Kubernetes + 통합 모니터링 솔루션이 필요합니다.
  • 세부 프로파일링이 필요한 경우: 자세한 프로파일링(예: 퍼포먼스 플레임 수준)엔 프로파일러(예: pprof 등)를 사용하세요.

대안 및 확장 솔루션

  • Portainer: GUI 기반의 컨테이너/스택 관리를 제공하며, 간단한 모니터링 기능을 포함합니다.
  • Prometheus + Grafana: 시계열 수집과 대시보드를 통해 장기 보관, 알람, 고급 분석이 가능합니다.
  • Datadog/New Relic 등 상용 APM: 복잡한 분산 시스템과 연동해 상세한 메트릭과 트레이싱을 제공합니다.

비교 요약

도구실시간그래프장기 보관알람사용성
Docker Desktop 대시보드제한적아니오아니오매우 쉬움
Resource Usage 확장제한적아니오쉬움
docker stats예(터미널)아니오아니오아니오중간
Prometheus+Grafana예(설정 필요)설정 필요

수용 기준 및 테스트 케이스

  • 수용 기준

    • 모든 컨테이너의 실시간 CPU와 메모리 사용량을 대시보드에서 확인할 수 있다.
    • Resource Usage 확장에서 상위 5개 리소스 소비 컨테이너를 필터링할 수 있다.
    • docker stats로 특정 컨테이너의 사용량을 실시간으로 모니터링할 수 있다.
  • 테스트 케이스

    1. 여러 컨테이너를 실행한 뒤 대시보드에서 전체 사용량이 표시되는지 확인한다.
    2. Resource Usage 확장에서 필터를 적용해 상위 소비자를 식별한다.
    3. docker stats <컨테이너>를 실행해 해당 컨테이너의 데이터가 스트리밍되는지 확인한다.

문제 발생 시 롤백 및 트러블슈팅 요령

  1. 문제가 되는 컨테이너 식별: 대시보드/확장/docker stats 중 하나로 확인
  2. 임시 완화: 문제 컨테이너를 중지하거나 리소스 제한을 걸어 시스템 안정화
  3. 원인 조사: 컨테이너 내부 로그, docker top, 애플리케이션 로그 확인
  4. 영구 조치: 이미지 최적화, 메모리·CPU 제한 반영, 불필요한 서비스 제거
  5. 검증: 변경 후 동일 도구로 리소스 감소 확인

보안 및 개인정보 고려사항

로컬 모니터링 도구 자체는 일반적으로 민감한 개인정보를 수집하지 않습니다. 그러나 로그나 환경 변수에 민감 정보가 포함될 수 있으므로, 공유 또는 중앙화된 모니터링으로 전송하기 전에 민감 정보를 마스킹하거나 제거하세요.

체크리스트 요약

  • Docker Desktop 대시보드에서 전체 상태 확인
  • Resource Usage 확장 설치 및 상위 소비자 식별
  • [ ] docker stats로 의심 컨테이너 실시간 확인
  • 필요시 컨테이너 리소스 제한 적용
  • 불필요한 이미지/볼륨 정리
  • 장기 보관/알람이 필요하면 Prometheus/Grafana 고려

FAQ

Docker Desktop 자체가 많은 리소스를 소비하면 어떻게 하나요?

Docker Desktop 설정에서 가상 머신에 할당된 CPU와 메모리를 조정하세요. 또한 불필요한 백그라운드 기능(예: 일부 확장)을 비활성화하면 도움이 됩니다.

로컬에서 Prometheus를 사용하면 어떤 장점이 있나요?

Prometheus는 시계열 데이터를 장기 보관하고 알람을 설정할 수 있어 지속적 추적과 분석에 유리합니다. Grafana와 결합하면 강력한 대시보드를 구성할 수 있습니다.

docker stats 출력의 memory limit 값은 어디서 오는가?

컨테이너를 실행할 때 지정한 메모리 제한 값(–memory)이 표시됩니다. 지정하지 않으면 상위 VM의 가용 메모리가 한도로 표시될 수 있습니다.

요약

Docker Desktop의 내장 대시보드, Resource Usage 확장, docker stats는 각기 장단점이 있어 상황에 맞게 조합해 사용하는 것이 핵심입니다. 로컬 개발 환경에서는 대시보드·확장·터미널 명령의 조합으로 대부분의 문제를 탐지하고 완화할 수 있으며, 장기 분석이나 알람이 필요한 경우 Prometheus/Grafana 같은 확장 솔루션을 도입하세요.

핵심 권장사항

  • 먼저 대시보드로 빠르게 문제를 식별하고, 필요 시 확장 또는 docker stats로 심층 분석하세요.
  • 리소스 한계를 컨테이너에 설정해 시스템 과부하를 예방하세요.
  • 정기적인 정리와 모니터링 플레이북으로 문제 해결 주기를 단축하세요.
공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기