2016-10-28 79 views
5

在已經登錄到容器所使用的命令 -如何記錄在Docker容器內運行的所有進程?

docker exec -it <container_name> 

如何檢查集裝箱內的所有處理運行? 「ps aux」是否是正確的方法?有沒有更好的替代方法?

由於

+1

你的指揮把這個月底:慶典那麼一旦裏面,是PS工程....也可以嘗試PS 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

感謝,對於具有每個容器一個應用程序的過程。所以,我有一個只調用一個java jar文件的python應用程序,所以有一個python進程和一個java進程會執行一段時間。我應該在不同的容器上運行它們還是會運行不同的容器? –

+0

我提到的是推薦的方法。一旦指定的過程結束,容器自動停止用戶需要明確停止容器,只爲長期存在的進程/容器。所以,不要過度殺人。如果可能,您可以選擇在兩個容器中運行您的過程。順便說一句,如果這個答案對你有幫助,那麼考慮接受它。 – Rao

7

您可以使用專用命令top在docker容器中列出進程,而不管容器中的操作系統如何。

docker top <container> 
相關問題