도커 컨테이너 모니터링에 유용한 ctop 소개 | Docker
도커의 기본적 명령어 중 도커 컨테이너의 리스트를 조회하는 명령어인 docker ps
나 docker ps -a
명령어로도 시스템의 컨테이너 상태를 쉽게 알 수 있습니다.
따라서 이 기본 명령어 만으로도 도커 컨테이너의 문제 발생이 의심되었을 때, 트러블슈팅의 방향성을 잡을 수 있습니다.
하지만 CLI 환경에서 GUI 비슷한 시각화 구현 욕구, 그리고 기본 성능을 업그레이드하려는 욕구는 항상 있는 것일까요?
능력있는 분들의 3rd party 도구들이 기본 명령어의 무언가 아쉬운 점에 대한 가려움을 긁어줄 때가 많은 것 같습니다.
그래서 이번에는 도커 컨테이너의 트러블슈팅에 유용한 ctop
이라는 명령어를 통해 시스템의 top
명령어 같으면서, 컨테이너의 상태를 파악하는 방법을 소개합니다.
1. ctop 설치
OS 별로 설치 방법이 다릅니다. 아래 명령어를 복사하여 사용하시면 됩니다.
Debian/Ubuntu 계열
sudo apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://azlux.fr/repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/azlux-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian \
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/azlux.list >/dev/null
sudo apt-get update
sudo apt-get install docker-ctop
Windows 계열 (powershell)
powershell 에서 scoop 을 먼저 설치해야 합니다. (여기서는 윈도우 도커를 설치하고 세팅하고 운용중이라는 가정하에 합니다.)
Powershell의 명령프롬프트에서 다음 순서로 진행합니다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
(https://scoop.sh 사이트를 참고하셔도 좋습니다)
그 후 Powershell을 열고 명령프롬프트에서 다음을 진행합니다.
scoop install ctop
Mac (OS X) 계열
homebrew 가 일반적일 것이라 생각해서 brew 를 통한 방법만 소개 하겠습니다.
brew install ctop
2. ctop 사용법
ctop : 기본
여러 컨테이너의 CPU, 메모리, 네트워크, I/O 에 대한 정보를 얻을 수 있습니다.
기본적으로 ctop 명령어만 사용하여도 다음과 같은 화면이 나타납니다.
ctop
각 상태에 대한 설명을 드리면
왼쪽열에서 녹색과 붉은색 원 아이콘은 각각 컨테이너가 실행중(녹색)인지 아닌지(붉은색)를 알려줍니다.
그리고 일시정지 아이콘은 컨테이너를 pause 시킨 상태인 경우를 나타냅니다.
만약 컨테이너가 헬스체크 상태일 경우 원으로 표시된 아이콘의 더 좌측에 플러스 기호 [+] 모양의 아이콘이 생길 수 있는데요
이 [+] 의 색상에 따라서도 failed state (붉은색) , starting state (노란색), 상태 양호 (녹색) 를 알 수 있습니다.
ctop : 단일 컨테이너를 선택하여 더 자세히 보는 방법 (특정 컨테이너를 검사)
ctop에서 조회된 화면에서 키보드의 위 / 아래 화살표 키를 이용하여 NAME 컬럼의 컨테이너 커서를 이동할 수 있습니다.
상세 조회를 원하는 컨테이너를 선택하고 엔터를 누르면 아래와 같은 추가 메뉴가 나타나게 됩니다.
여기서 single view를 선택하면 해당 컨테이너의 상세 상태가 시각화 되어 표시됩니다.
옵션 요소
ctop 명령어에 다음 option 명령어를 조합하여 사용할 수 있습니다
옵션 | 설명 |
---|---|
-a | 활성 컨테이너만 표시 |
-f <string> | 컨테이너를 필터링 합니다 (예: ctop -f app ) |
-h | 도움말 대화 상자 표시 |
-i | 기본 색상 반전 |
-r | 컨테이너 정렬 순서를 역순으로 전환 |
-s | 초기 컨테이너 정렬 필드 선택 |
-v | 버전 정보 출력 하고 종료 |
ctop에서 키보드 액션을 위한 바인딩 표
키보드를 이용하여 빠른 조작이 가능합니다
옵션 | 액션 |
---|---|
<ENTER> | 컨테이너 메뉴 열기 |
a | 실행중인 컨테이너 및 실행중이지 않은 컨테이너를 모두 표시(전환) 합니다 |
f | 표시된 컨테이너를 필터링 합니다 |
H | ctop 헤더간 전환을 합니다 |
h | 도움말을 엽니다 |
s | 컨테이너 정렬 필드를 선택합니다 |
r | 정렬 방식을 역순으로 합니다 |
o | single view 보기를 엽니다 |
l | 컨테이너 로그를 봅니다 (t를 추가로 눌러 타임스탬프를 전환합니다) |
e | exec 쉘 |
c | 열 구성 |
S | 현재 구성을 파일로 저장합니다 |
q | ctop을 종료합니다 |
자세한 정보
최신의 자세한 정보가 필요할 경우를 위해 제작자의 깃허브 링크를 마지막으로 ctop에 대한 소개를 마치도록 하겠습니다.
https://github.com/bcicen/ctop?tab=readme-ov-file
Bricoleur88 Tech Insight 에서 더 알아보기
구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.