Docker container top 명령으로 컨테이너 프로세스 확인하는 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker container top 명령을 사용하여 Docker 컨테이너 내부에서 실행 중인 프로세스를 검사하는 방법을 배우게 됩니다. 먼저 실행 환경을 갖추기 위해 간단한 컨테이너를 시작합니다.

그 다음, docker container top 명령을 사용하여 컨테이너 내에서 활성 프로세스를 확인합니다. 마지막으로, docker container top을 다양한 ps 옵션과 함께 사용하여 출력을 사용자 정의하고 컨테이너의 프로세스에 대한 더 자세한 정보를 얻는 방법을 살펴봅니다.

간단한 컨테이너 시작

이 단계에서는 간단한 Docker 컨테이너를 시작하는 방법을 배우게 됩니다. Docker 컨테이너는 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 가볍고, 이식 가능하며, 자급자족적인 단위입니다.

먼저, Docker Hub 에서 hello-world 이미지를 가져와 보겠습니다. 이것은 Docker 가 제대로 작동하는지 테스트하는 데 자주 사용되는 매우 작은 이미지입니다.

docker pull hello-world

이미지가 가져와지고 추출되고 있음을 나타내는 출력을 볼 수 있습니다.

이제 hello-world 이미지를 기반으로 컨테이너를 실행해 보겠습니다.

docker run hello-world

이 명령을 실행하면 Docker 는 hello-world 이미지에서 새 컨테이너를 생성하고 이미지에 정의된 명령을 실행합니다. hello-world 이미지는 단순히 콘솔에 메시지를 출력한 다음 종료하도록 설계되었습니다.

다음과 유사한 출력을 볼 수 있습니다.

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To discover more examples and ideas, visit:
 https://docs.docker.com/get-started/

이 출력은 Docker 가 LabEx VM 에 설치되어 제대로 작동하고 있음을 확인합니다. docker run 명령은 컨테이너를 생성하고 시작한 다음 작업을 실행하고 종료했습니다.

docker container top 으로 실행 중인 프로세스 확인

이 단계에서는 docker container top 명령을 사용하여 Docker 컨테이너 내부에서 실행 중인 프로세스를 보는 방법을 배우게 됩니다. 이 명령은 Linux 시스템의 top 명령과 유사하지만, 컨테이너 내에서 구체적으로 실행 중인 프로세스를 보여줍니다.

먼저, 실행 중인 컨테이너가 필요합니다. 간단한 ubuntu 컨테이너를 시작하고 백그라운드에서 계속 실행하도록 하겠습니다. -d 플래그를 사용하여 컨테이너를 분리 모드 (detached mode) 로 실행하고, sleep infinity 명령을 사용하여 컨테이너를 활성 상태로 유지합니다.

docker run -d ubuntu sleep infinity

콘솔에 긴 문자열이 출력되는 것을 볼 수 있습니다. 이것은 컨테이너 ID 입니다.

이제 docker container top 명령을 컨테이너 ID 또는 이름과 함께 사용하여 이 컨테이너 내에서 실행 중인 프로세스를 확인해 보겠습니다. docker ps를 실행하여 컨테이너 ID 를 얻을 수 있습니다.

docker ps

출력에서 CONTAINER ID를 복사합니다. 그런 다음, 다음 명령에서 <container_id>를 실제 ID 로 바꿉니다.

docker container top <container_id>

다음과 유사한 출력을 볼 수 있으며, 컨테이너 내에서 sleep infinity 프로세스가 실행 중임을 보여줍니다.

UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                7345                7331                0                   14:55               ?                   00:00:00            sleep infinity

출력은 지정된 컨테이너 내에서 실행 중인 프로세스에 대한 정보를 보여줍니다. 여기에는 사용자 ID (UID), 프로세스 ID (PID), 상위 프로세스 ID (PPID), CPU 사용률 (C), 시작 시간 (STIME), 제어 터미널 (TTY), 누적 CPU 시간 (TIME) 및 실행 중인 명령 (CMD) 이 포함됩니다. 이 경우, 주 프로세스는 sleep infinity입니다.

ps 옵션과 함께 docker container top 사용

이 단계에서는 docker container top 명령을 ps 옵션과 함께 사용하여 출력을 사용자 정의하고 컨테이너 내의 특정 프로세스 정보를 보는 방법을 배우게 됩니다. docker container top 명령은 표준 ps 옵션을 허용하여 표시할 열과 형식을 제어할 수 있습니다.

먼저, 이전 단계에서 실행 중인 컨테이너가 있는지 확인합니다. docker ps를 실행하여 확인할 수 있습니다.

docker ps

실행 중인 ubuntu 컨테이너의 CONTAINER ID를 복사합니다.

이제 ps 옵션과 함께 docker container top을 사용해 보겠습니다. 예를 들어, 프로세스 ID (pid) 와 명령 (cmd) 만 표시하려면 -o 옵션을 사용하고 원하는 열을 지정합니다. <container_id>를 컨테이너 ID 로 바꿉니다.

docker container top pid,cmd < container_id > -o

다음과 유사한 출력을 볼 수 있으며, PID 및 CMD 열만 표시됩니다.

PID                 CMD
7345                sleep infinity

다양한 ps 옵션을 사용하여 다른 정보를 얻을 수 있습니다. 예를 들어, CPU 사용량 (%cpu) 및 메모리 사용량 (%mem) 을 보려면 다음을 사용할 수 있습니다.

docker container top pid,%cpu,%mem,cmd < container_id > -o

출력에는 컨테이너의 프로세스에 대한 CPU 및 메모리 사용량이 포함됩니다.

PID                 %CPU                %MEM                CMD
7345                0.0                 0.0                 sleep infinity

사용 가능한 모든 옵션 목록은 ps 명령 문서를 참조할 수 있습니다. ps 옵션과 함께 docker container top을 사용하면 컨테이너 내에서 실행 중인 프로세스를 모니터링하고 문제를 해결하는 유연한 방법을 제공합니다.

요약

이 랩에서는 Docker 컨테이너와 상호 작용하는 기본적인 단계를 배웠습니다. 먼저, 간단한 hello-world 이미지를 풀링하고 실행하여 Docker 설치의 기본적인 테스트를 수행하고 핵심 docker pulldocker run 명령을 시연했습니다. 이 초기 단계는 Docker 가 이미지를 가져와 미리 정의된 작업을 실행하기 위해 컨테이너를 생성하는 방법을 보여주었습니다.

이어서, docker container top 명령을 소개받았습니다. 전체 내용은 제공되지 않았지만, 단계 제목은 이 명령을 사용하여 표준 Linux 환경의 top 명령과 유사하게 컨테이너 내부에서 실행 중인 프로세스를 검사하는 방법을 배우게 될 것임을 나타냅니다. 마지막 단계인 "ps 옵션과 함께 docker container top 사용하기"는 docker container top의 기능을 더 탐구하여 ps 명령에서 찾을 수 있는 옵션과 유사한 옵션을 사용하여 출력을 사용자 정의하는 방법을 보여주는 것으로 보입니다.