【问题标题】:Node-inspector in docker does not load sourcesdocker中的节点检查器不加载源
【发布时间】:2016-06-04 02:01:34
【问题描述】:

我有两个带有不同图像的 docker 容器。这是“docker ps”命令的部分输出:

$user: docker ps
CONTAINER ID    IMAGE          PORTS
9c8ff81215d4    node:slim      0.0.0.0:5858->5858/tcp, 0.0.0.0:10101->10101/tcp
d85a0de91432    node-debug     0.0.0.0:8080->8080/tcp

第一个容器正在运行带有调试选项的服务器应用:

$user: node --debug server.js
Debugger listening on port 5858
...

使用调试器监听端口 5858,使用 server.js 应用监听端口 10101。

第二个容器正在运行节点检查器

$user: node-inspector
Node Inspector v0.12.6
Visit http://127.0.0.1:8080/?port=5858

默认情况下在端口 5858 上连接到调试器,并在端口 8080 上侦听 Chrome 中的网络检查器。

问题是当我访问 http://127.0.0.1:8080/?port=5858 时,我看到检查器没有加载源。

在 Chrome 控制台中看到此错误:

Request with id = 10 failed. "ErrorNotConnected: Error: connect ECONNREFUSED 127.0.0.1:5858. Is node running with --debug port 5858?"

【问题讨论】:

    标签: node.js debugging docker node-inspector


    【解决方案1】:

    这里的问题是节点检查器正在尝试连接到 localhost/127.0.0.1,即 该容器 的本地,而不是您主机的本地。当您在桥接网络中运行时(默认),每个容器都有自己的 IP。

    您可以使用以下任一选项快速解决此问题:

    1. 为两个容器使用主机网络
      • 在这种情况下,您配置的端口转发不再需要
    2. 仅对节点检查器容器使用主机网络
      • 在这种情况下,您仍然需要将端口 5858 映射到主机,但不再需要节点检查器上的端口 8080

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 2019-08-23
      • 2020-11-16
      • 1970-01-01
      • 2019-08-24
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 2015-05-18
      相关资源
      最近更新 更多