如何debugging在Docker容器中运行的多个进程?
我在一个Docker容器中运行一个多进程应用程序实例,每个进程都作为一个简单的守护进程运行。 目前我不可能debugging容器中出现的任何运行时错误,因为docker attach
经常挂起(并产生交错的打印语句),并且tmux
和screen
都不能在容器中正常工作。 而且,将每个进程的stdoutredirect到一个日志文件,如下所示:
python myfile.py 1>> mylogfile 2>&1 &
根本不工作,因为我只看到日志文件中的警告。 一个理想的解决scheme将获得tmux
工作。 你如何debugging你的容器中的进程?
不要在一个容器中运行多个进程
出于所有你列出的原因。
使用supervisord
在Docker的前几天,“不要运行多个进程!” 并不是一个很大的规则。 Supervisord是推荐的initd-like工具,用于在一个容器中处理多个服务。 它可以尝试监视两者,它可以正确处理日志。
使用docker exec
来debugging
docker exec [-it] <container> <command>
允许您在运行的容器上运行额外的命令。 用它来获得一个壳和探索。