如何记录Docker容器中运行的所有进程?

如何记录Docker容器中运行的所有进程?,docker,logging,Docker,Logging,使用命令登录到容器后- docker exec -it <container_name> docker exec-it 如何检查容器内运行的所有已处理的文件?“ps aux”是正确的方法吗?有没有更好的替代方法 谢谢可以使用以下命令显示容器内运行的所有进程,而无需登录终端。当然,这就像使用ps-eaf可以看到的一样,所以只需将其添加到docker exec bash $ sudo docker exec -it test1 ps -eaf PID USER TIME

使用命令登录到容器后-

docker exec -it <container_name>
docker exec-it
如何检查容器内运行的所有已处理的文件?“ps aux”是正确的方法吗?有没有更好的替代方法


谢谢

可以使用以下命令显示容器内运行的所有进程,而无需登录终端。当然,这就像使用
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
命令查看正在运行的进程


顺便说一句,建议每个容器有一个用户应用程序/进程。

您可以使用专用命令top列出docker容器中的进程,而不考虑容器中的操作系统

docker top <container>
docker-top

从@Slawomir的答案扩展而来

使用ps选项,docker top[--help]容器[ps选项]


docker-top-eo-pid,cmd

将此命令置于末尾:bash然后一旦进入,是的,ps工作。。。。还可以尝试ps eafww查看宽输出,即每个容器有一个应用程序进程。所以,我有一个python应用程序,它只调用一个JavaJAR文件,所以有一个python进程和一个java进程,执行时间很短。我应该在不同的容器上运行它们,还是在不同的容器上运行会是一种过度的行为?我提到的是推荐的方法。一旦指定的进程结束,容器将自动停止。用户只需要为长期存在的进程/容器显式停止容器。所以,不是过度杀戮。如果可能,您可以选择在两个容器中运行流程。顺便说一下,如果这个答案对你有帮助,那就考虑接受它吧。