Добавить в корзинуПозвонить
Найти в Дзене
Эникей на передержке

Как узнать какому контейнеру принадлежит процесс?

Каждый, кто работает с Docker, может столкнуться с ситуацией, когда потребуется узнать в каком контейнере запущен тот или иной процесс. Итак, в первую очередь нужно найти к какой cgroup принадлежит интересующий нас процесс: systemd-cgls | grep -B 5 <PID> *systemd-cgls выводит дерево процессов с указанием в какой cgroup они находятся, параметр "-B 5" позволяет вывести 5 строк до строки с искомым вхождением Теперь возьмём первые несколько символов после дефиса и с их помощью найдём контейнер: docker ps -a | grep 44e3c6d1fa Если контейнеров очень мало, можете использовать команду по выводу информации о процессах, запущенных в контейнере: docker top <container_ID> Если материал был полезен, поставьте лайк или подпишитесь на канал, чтобы чаще видеть в ленте подобный контент. Всем добра!)
Оглавление

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

Поиск cgroup

Итак, в первую очередь нужно найти к какой cgroup принадлежит интересующий нас процесс:

systemd-cgls | grep -B 5 <PID>

*systemd-cgls выводит дерево процессов с указанием в какой cgroup они находятся, параметр "-B 5" позволяет вывести 5 строк до строки с искомым вхождением

В моём случае это docker-44e3c6d1fa2b5338370...
В моём случае это docker-44e3c6d1fa2b5338370...

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

Теперь возьмём первые несколько символов после дефиса и с их помощью найдём контейнер:

docker ps -a | grep 44e3c6d1fa
"Виновник" найден
"Виновник" найден

Лайфхак:

Если контейнеров очень мало, можете использовать команду по выводу информации о процессах, запущенных в контейнере:

docker top <container_ID>
Процессы внутри контейнера nextcloud-app-1
Процессы внутри контейнера nextcloud-app-1

Если материал был полезен, поставьте лайк или подпишитесь на канал, чтобы чаще видеть в ленте подобный контент. Всем добра!)