Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调试Docker容器中运行的多个进程?_Docker_Containers_Tmux - Fatal编程技术网

如何调试Docker容器中运行的多个进程?

如何调试Docker容器中运行的多个进程?,docker,containers,tmux,Docker,Containers,Tmux,我在Docker容器中运行一个多进程应用程序实例,每个进程作为一个简单的守护进程运行。目前,我无法调试容器中出现的任何运行时错误,因为docker attach经常挂起(并生成交叉打印语句),而且tmux和screen似乎都无法在容器中正常工作。此外,将每个进程的stdout重定向到日志文件,如下所示: python myfile.py 1>> mylogfile 2>&1 & 根本不起作用,因为我只在日志文件中看到警告。理想的解决方案是让tmux工作。如何调

我在Docker容器中运行一个多进程应用程序实例,每个进程作为一个简单的守护进程运行。目前,我无法调试容器中出现的任何运行时错误,因为
docker attach
经常挂起(并生成交叉打印语句),而且
tmux
screen
似乎都无法在容器中正常工作。此外,将每个进程的stdout重定向到日志文件,如下所示:

python myfile.py 1>> mylogfile 2>&1 &
根本不起作用,因为我只在日志文件中看到警告。理想的解决方案是让
tmux
工作。如何调试容器中的进程?

不要在一个容器中运行多个进程 因为你概述的所有原因

使用监督员 在Docker的早期,“不要运行多个进程!”并不是什么大规则。Supervisord是推荐的类似initd的工具,用于在一个容器中处理多个服务。它可以尝试同时监视这两种情况,并且可以正确处理日志记录

使用docker exec进行调试
docker exec[-it]
允许您在正在运行的容器上运行额外的命令。使用它获取shell并进行探索。

不要在一个容器中运行多个进程 因为你概述的所有原因

使用监督员 在Docker的早期,“不要运行多个进程!”并不是什么大规则。Supervisord是推荐的类似initd的工具,用于在一个容器中处理多个服务。它可以尝试同时监视这两种情况,并且可以正确处理日志记录

使用docker exec进行调试
docker exec[-it]
允许您在正在运行的容器上运行额外的命令。使用它获取shell并进行探索。

一般来说,不要试图在一个容器中运行多个进程。对于调试,您应该能够使用
docker exec-it bash
(或
sh
)在容器中获得一个shell。通常,不要尝试在单个容器中运行多个进程。对于调试,您应该能够使用
docker exec-it bash
(或
sh
)在容器中获得一个shell