2016-10-28 2 views
5

После того, как вошел в контейнер с помощью использовал команду -Как регистрировать все процессы, выполняемые внутри контейнера Docker?

docker exec -it <container_name> 

Как проверить для всех обработанных работают внутри контейнера? Правильно ли это «ps aux»? Есть ли лучшие альтернативные подходы?

Благодаря

+1

Для вашей команды положить это в конце: Баш затем один раз внутри, да пс работает .... Также попробуйте п.с. eafww для просмотра вывода широкого –

ответ

6

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

bash $ sudo docker exec -it test1 ps -eaf 
PID USER  TIME COMMAND 
    1 root  0:00 sh 
    7 root  0:00 sh 
    60 root  0:00 /bin/sh 
    67 root  0:00 /bin/sh 
    84 root  0:00 ps -eaf 

Как уже было сказано, если вы уже внутри контейнера, а затем просто использовать ps -eaf команду, чтобы увидеть запущенные процессы.

Кстати, рекомендуется иметь одно приложение/процесс для каждого контейнера.

+0

Спасибо, что касается имеют один процесс подачи заявки за контейнер. Итак, у меня есть приложение python, которое просто вызывает java-файл java, поэтому есть один процесс python и один java-процесс, который выполняется в течение небольшого времени. Должен ли я запускать их на разных контейнерах или это будет избыток, запускающий разные контейнеры? –

+0

То, что я упомянул, рекомендуется. Контейнер автоматически останавливается, как только назначенный процесс заканчивается. Пользователю необходимо явно запретить контейнер только для долговечных процессов/контейнеров. Итак, не убивайте больше. Если возможно, вы можете запустить свой процесс в двух контейнерах. Кстати, если этот ответ полезен, тогда подумайте о его принятии. – Rao

7

Вы можете использовать выделенную команду top, чтобы просмотреть процесс в контейнере докера, независимо от операционной системы в контейнере.

docker top <container> 
Смежные вопросы