如果我要为我的一个应用程序创建一个Docker映像并将其发布在Docker Hub中。
许多用户下载了此图像,并在其容器中运行了该应用程序,并在文件夹中生成了应用程序日志。
现在作为开发人员,当该容器位于我无权访问的远程计算机中时,如何查看我机器上的那些应用程序日志?
如果它是虚拟机,我可以在同一台计算机上执行ssh并转到该文件夹,然后查看该特定应用程序的日志,那么使用docker怎么可能?
我不是在谈论docker事件日志,这是我的python应用程序通过日志记录模块生成的日志。您能帮助我如何在Docker中处理这种情况吗?
我没有在docker上工作的经验。
答案 0 :(得分:1)
如果您的应用程序将日志文件写入容器文件系统,则这是Docker绑定挂载的两个很好的用途之一。如果操作员(运行容器的人;不是您,原始软件的作者)使用
启动容器docker run -v $PWD/logs:/app/logs ... you/yourimage
那么他们将能够直接在其主机系统上读取日志文件。
作为原始应用程序开发人员,您无权访问这些日志。这与其他所有(非SaaS)应用程序相同:最终用户在其系统上安装软件并运行该软件,但是该软件在您无法登录的系统上,因此您无法直接看到日志文件之类的内容。处理此问题的技术与其他方法相同:当用户提交错误报告时,请确保他们提供足够的再现,日志文件和相关配置,并在本地自己再现问题。
答案 1 :(得分:0)
docker exec
可用于在Docker容器中运行bash命令。但是在您的情况下,容器运行在远程计算机上,而不是在本地计算机上。因此,在这种情况下,您有2个选择。
1. SSH到远程计算机,然后使用docker exec命令检查日志。
2.直接SSH到Docker容器。
但是,在两种情况下,您都需要最终用户通过SSH访问远程计算机。 我希望这会有所帮助。