Как использовать команду docker container top для просмотра процессов в контейнере

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этой лабораторной работе (lab) вы научитесь использовать команду docker container top для проверки процессов, выполняющихся внутри Docker-контейнера. Вы начнёте с запуска простого контейнера, чтобы создать рабочую среду.

Затем вы воспользуетесь командой docker container top для просмотра активных процессов внутри контейнера. В завершение вы изучите, как использовать docker container top с различными опциями ps для настройки вывода и получения более детальной информации о процессах контейнера.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/top("Display Running Processes in Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/run -.-> lab-555125{{"Как использовать команду docker container top для просмотра процессов в контейнере"}} docker/ps -.-> lab-555125{{"Как использовать команду docker container top для просмотра процессов в контейнере"}} docker/top -.-> lab-555125{{"Как использовать команду docker container top для просмотра процессов в контейнере"}} docker/pull -.-> lab-555125{{"Как использовать команду docker container top для просмотра процессов в контейнере"}} end

Запуск простого контейнера

На этом шаге вы узнаете, как запустить простой Docker-контейнер. Docker-контейнеры — это легковесные, переносимые и самодостаточные единицы, содержащие всё необходимое для запуска приложения.

Сначала загрузим образ hello-world из Docker Hub. Это очень маленький образ, который часто используется для проверки корректной работы 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-контейнера. Эта команда аналогична команде top в Linux, но отображает процессы, выполняющиеся конкретно внутри контейнера.

Сначала нам понадобится работающий контейнер. Запустим простой контейнер ubuntu в фоновом режиме. Мы используем флаг -d для запуска в detached mode и команду sleep infinity, чтобы контейнер продолжал работать.

docker run -d ubuntu sleep infinity

Вы увидите длинную строку символов — это идентификатор контейнера (container ID).

Теперь используем docker container top с указанием ID или имени контейнера, чтобы увидеть выполняющиеся процессы. ID контейнера можно получить с помощью команды docker ps.

docker ps

Скопируйте CONTAINER ID из вывода и подставьте его вместо <container_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

Вывод показывает информацию о процессах внутри указанного контейнера, включая:

  • Идентификатор пользователя (UID)
  • Идентификатор процесса (PID)
  • Идентификатор родительского процесса (PPID)
  • Использование CPU (C)
  • Время запуска (STIME)
  • Управляющий терминал (TTY)
  • Общее время CPU (TIME)
  • Выполняемую команду (CMD)

В данном случае основным процессом является sleep infinity.

Использование docker container top с опциями ps

На этом шаге вы узнаете, как использовать команду docker container top с опциями ps для настройки вывода и просмотра конкретной информации о процессах внутри контейнера. Команда docker container top принимает стандартные опции ps, позволяя управлять отображаемыми столбцами и их форматом.

Сначала убедитесь, что у вас есть работающий контейнер из предыдущего шага. Это можно проверить командой docker ps.

docker ps

Скопируйте CONTAINER ID работающего контейнера ubuntu.

Теперь используем docker container top с некоторыми опциями ps. Например, чтобы отобразить только идентификатор процесса (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. Использование docker container top с опциями ps предоставляет гибкий способ мониторинга процессов внутри контейнеров и диагностики проблем.

Итоги

В этой лабораторной работе вы изучили основные шаги взаимодействия с Docker-контейнерами. Вы начали с загрузки и запуска простого образа hello-world, что послужило базовой проверкой вашей установки Docker и продемонстрировало основные команды docker pull и docker run. Этот начальный этап показал, как Docker получает образы и создает контейнеры для выполнения предопределенных задач.

Затем вы познакомились с командой docker container top. Хотя полное содержание не было приведено, название шага указывает, что вы узнали, как использовать эту команду для проверки процессов, выполняющихся внутри контейнера, аналогично команде top в стандартной среде Linux. Финальный шаг "Использование docker container top с опциями ps" предполагает дальнейшее изучение возможностей docker container top, вероятно, демонстрируя, как настроить вывод с помощью опций, аналогичных тем, что используются в команде ps.