@EgorSvinarev

Как получить pid процесса внутри docker-контейнера?

Привет
Такой вопрос: почему pid, возвращаемый метод process.pid() (например, 23755), и pid, возвращаемый утилитой ps (например, 23679)? Нужный процесс крутится в docker контейнере, я знаю, что есть некоторый маппинг между pid'ами в ос и в контейнерах, но как мне получить нужный?
  • Вопрос задан
  • 386 просмотров
Пригласить эксперта
Ответы на вопрос 1
karabanov
@karabanov
Системный администратор
У процесса в контейнере, если он один, PID равет 1
Маппинг есть. PID в неймспейсе (в контейнере), он же NSpid можно увидеть так

Процесс в контейнер может порождать threads. thread тоже будет имет PID и он тоже будет мапиться, и узнать его NSpid можно также.

Пример, смотрим на PID и NSpid сервера MySQL запущенного в контейнере:
root@test:~# cat /proc/6656/status | grep NSpid
NSpid:	6656	1

Пример, смотрим на PID и NSpid потока, котррый породил сервер MySQL запущенный в контейнере (неймспейсе):
root@test:~# cat /proc/7792/status | grep NSpid
NSpid:	7792	83
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы