Docker top и анализ нагрузки в контейнерах


Docker top — утилита, позволяющая выяснить какие процессы выполняются внутри контейнера с хост машины, не подключаясь к самому контейнеру.

Главный плюс Docker top в том, что его можно использовать с любыми контейнерами. Независимо от того есть ли внутри контейнера утилиты для диагностики, такие как top. Их может не быть если сборка минималистичная.



Использование Docker top


Основные команды, которые понадобятся при использовании docker top:



docker run -it ubuntu:14.04 /bin/bash

Запускает контейнер из выбранного образа и позволяет зайти в него используя оболочку /bin/bash



CTRL + P + Q

Комбинация клавиш, которой можно выйти из контейнера не останавливая его



CTRL + P

Остановит контейнер и уничтожит все временные данные, которые существовали пока контейнер был запущен



docker attach ID

Подключиться к контейнеру выбрав его по идентификатору



docker top ID

Посмотреть запущенные процессы и информацию по контейнеру



docker ps

Покажет идентификаторы всех запущенных контейнеров

 

Пример использования docker top


Запуск контейнера из образа

docker run -d -ti --name=testc ubuntu:14.04 /bin/bash



Поиск идентификатора контейнера

docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
acb5f4b93aa2 1_website «docker-php-entrypoi…» 4 days ago Up 4 days 0.0.0.0:5001->80/tcp 1_website_1
34b0b45ca940 nginx «nginx -g 'daemon of…» 4 days ago Up 4 days 0.0.0.0:80->80/tcp docker-nginx



Просмотр информации по выбранному контейнеру с хост машины

docker top acb5f4b93aa2

UID PID PPID C STIME TTY TIME CMD
root 22187 22166 0 Jun11 ? 00:00:12 apache2 -DFOREGROUND
www-data 22298 22187 0 Jun11 ? 00:00:00 apache2 -DFOREGROUND
www-data 22299 22187 0 Jun11 ? 00:00:00 apache2 -DFOREGROUND
www-data 22300 22187 0 Jun11 ? 00:00:00 apache2 -DFOREGROUND
www-data 22302 22187 0 Jun11 ? 00:00:00 apache2 -DFOREGROUND
www-data 22303 22187 0 Jun11 ? 00:00:00 apache2 -DFOREGROUND
www-data 22320 22187 0 Jun11 ? 00:00:00 apache2 -DFOREGROUND
root 23292 22166 0 Jun11 pts/0 00:00:00 /bin/bash
root 23617 23292 0 Jun11 pts/0 00:00:00 mcedit index.html



docker top


Как можно увидеть, на самом деле контейнер создан не только что — внутри работает веб-сервер Apache, а авторизованный пользователь, использующий оболочку /bin/bash при помощи mcedit редактирует файл.


Читайте подробнее про управление контейнерами.

Сказать спасибо