我有一个express应用程序,它从IronMQ推送队列获取数据我已经对该应用程序进行了Docker处理,在Docker容器中运行该应用程序时,在一段空闲时间(如20-30分钟)后,该应用程序抛出错误并退出:
Error: read tcp 192.168.59.3:50346->192.168.59.103:2376: read: operation timed out
我的boot2docker ip-->192.168.59.103
我已在3000转报港口。
我尝试过使用进程对象来捕获未捕获的异常,但没有任何帮助。
注意:我在本地的docker之外运行了该应用程序,该应用程序运行良好,不会出现错误并注销。所以问题似乎出在docker身上。
事实证明,当您在附加模式下执行docker run命令时,即使用-a参数或不使用-d参数,类似于:
docker run -a <imageID>
或docker run <imageID>
Docker默认情况下会在一段时间后从容器中分离,并以分离模式运行容器。这意味着您的应用程序在后台运行良好。
因此出现错误:超时
注意:docker文档中没有明确提到这一点,所以我们认为可以在这里记录这一点以供将来参考。