Мониторинг запущенных контейнеров Docker

Команда docker exec используется для выполнения команд внутри запущенного Docker контейнера. Она позволяет вам взаимодействовать с запущенным контейнером и необходима, например, для запуска дополнительных процессов в контейнере или для входа в контейнер в интерактивном режиме.

Ниже приведен синтаксис команды docker exec:

docker exec [опции] <container_id> <команда>

Некоторые распространенные опции для команды docker exec:

  • -i, —interactive — позволяет вам взаимодействовать с командой в контейнере.
  • -t, —tty — выделение tty (терминального устройства) для взаимодействия с командой в контейнере.
  • —user — запуск команды от имени указанного пользователя или идентификатора пользователя и группы.

Команда docker exec позволяет выполнить команды внутри контейнера без необходимости запуска нового экземпляра контейнера. Это удобно для отладки, ввода внутрь контейнера в интерактивном режиме или запуска дополнительных процессов в уже запущенном контейнере.

Рассмотрим небольшой пример использования этой команды для мониторинга ресурсов внутри контейнера. Для этого я буду использовать запущенный на удаленной машине контейнер с Flask приложением. Как установить и запустить образ я описывал в предыдущих статьях.

Запустим контейнер:

docker run -d -p 5000:5000 --restart=always itpolice/test_app

В ответ я получил ID запущенного контейнера, который нужен для docker exec. ID активного контейнера также можно узнать командой «docker ps».

Зайдем в контейнер в интерактивном режиме командой:

docker exec -it 7acdfa8f50efba6742946c6e8b85463c92c9511a5380f2b7b122f6f9d065c239 bash

В этой команде:

  • docker exec используется для выполнения команд внутри контейнера
  • -it позволяет вам использовать интерактивный режим и также подключиться к терминалу контейнера
  • строка с кучей знаков — ID моего контейнера
  • bash указывает на то, что вы хотите войти в контейнер и запустить оболочку Bash

После выполнения этой команды, мы должны войти в контейнер и увидеть командную строку контейнера. Теперь можем выполнять команды и взаимодействовать с контейнером в интерактивном режиме.

Обновим индекс доступных пакетов:

apt-get update

Установим программу мониторинга системы и процессов htop внутри Docker контейнера:

apt-get install htop

После установки htop, вы можете запустить его, просто введя команду htop в терминале.

Теперь у нас должен быть установлен и запущен htop внутри bash-терминала в Docker контейнере.

Напоследок посмотрим, куда эта программа установилась, введя команду:

which htop

#/usr/bin/htop

Отсоединяемся от терминала классическим Ctrl + D или командой exit.

docker