【问题标题】:docker node randomly starts giving operation timed outdocker节点随机开始给操作超时
【发布时间】:2021-07-18 23:19:53
【问题描述】:

我仍然不知道问题是与 docker 网络、节点还是从节点到 mysql 的连接有关。 但是我有一个包含用于 api 管理的快速网关的 docker。每隔一段时间它就会开始给Operation timed out

错误来自 nodejs,但是当它发生时:

  • 我在容器的日志中看不到任何内容

  • 从服务器运行 tcpdump 显示正在调用 docker api,但返回响应为 500(正确运行时,我可以看到调用端口 3306 以连接到数据库)

  • 从 docker 容器内部运行 tcpdump 绝对不会返回任何内容(正常工作时我可以看到调用)

  • 不需要数据库连接的调用可以正常工作!但我仍然看不到他们在容器中的日志,也看不到他们在 tcpdump 中的调用

就好像服务器正在调用另一个 docker,但我搜索了所有卷、图像,没有重复。

我尝试检查以下内容:

  • 同一台机器上的资源

  • 数据库机器上的资源

  • 在服务器和 docker 上都使用wireshark tcpdump

  • 添加连接池以进行续集(以防有时与数据库的连接导致阻塞)

  • 检查所有 oauth2 路由,以防它重定向到本地主机服务器或其他任何东西

  • 到处添加日志只是为了在发生这种情况时查看日志,但徒劳无功

  • 使用外部端口从服务器远程登录到本地主机,使用内部端口远程登录到 172.17.0.2 -> 当我从本地主机执行此操作时略有不同,一段时间后我收到 Connection closed by foreign host

【问题讨论】:

  • 可能是登录容器的问题。服务器在无法记录请求时停止响应。
  • 谢谢,您的意思是从应用程序内部吗?因为我正在使用console.log 登录到标准输出。但是当这种情况发生时,我正在进入 docker 并执行 netstat 来检查监听端口并且它处于打开状态,节点的进程也在运行。 (我刚刚删除了 log_level DEBUG 并将检查它是否有所作为)
  • 是的,当我说“服务器”时,我指的是在容器中运行的服务器。
  • 我仍然有这个问题,删除了所有日志(实际上它只是一个测试服务器,我只访问它没有那么大的负载)我可以尝试其他任何事情吗?发生的另一件事即使重新启动容器也无法修复它

标签: mysql node.js docker networking


【解决方案1】:

我不知道 docker 容器像这样挂起是否正常,或者图像没有被正确删除,但是当我使用另一个名称创建容器时,一切正常。

【讨论】:

    猜你喜欢
    • 2019-06-04
    • 2021-02-10
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    相关资源
    最近更新 更多