【问题标题】:Dockerized app throws read operation timed out error and exitsDockerized 应用程序抛出读取操作超时错误并退出
【发布时间】:2015-12-07 18:21:44
【问题描述】:

我有一个 express 应用程序,它从 IronMQ 推送队列中获取数据。我已经 Dockerized 这个应用程序并正在运行该应用程序在 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 上。

【问题讨论】:

  • IronMQ 的日志是怎么说的?你能从外面nc192.168.59.103:2376 吗?你能docker exec 进入两个容器并检查连接是否仍然打开。
  • @CFrei:我在容器内登录,连接正常。我已经检查了应用程序是否在后台运行并且完全按照预期运行
  • 我想知道为什么它会在后台运行时抛出那个错误消息并退出控制台。
  • 你运行的是什么版本的 Docker?

标签: node.js express docker ironmq


【解决方案1】:

事实证明,当您在附加模式下执行 docker run 命令时,即使用 -a 参数或没有 -d 参数时,类似于:

docker run -a <imageID> docker run <imageID>

Docker 默认会在一段时间后从容器中分离,并以分离模式运行容器。这意味着您的应用程序在后台运行良好。

因此错误:超时

注意:这在 docker 文档中没有明确提及,因此认为可以在此处记录以供将来参考。

【讨论】:

    猜你喜欢
    • 2014-12-05
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 2019-04-22
    • 2012-08-29
    相关资源
    最近更新 更多