docker中的节点检查器不加载源代码

我有两个不同图像的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 

第一个容器正在运行带有debugging选项的服务器应用程序:

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

并用debugging器在端口5858上监听,在端口10101上用server.js app监听。

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

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

它在默认情况下在端口5858上连接到debugging器,并在Chrome上监听端口8080上的web-inspector。

问题是当我访问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?" 

在这里输入图像说明

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

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

  1. 两个容器都使用主机networking
    • 在这种情况下,您configuration的端口转发不再需要
  2. 只使用主机networking为节点检查器容器
    • 在这种情况下,您仍然需要端口5858映射到主机,但不再是节点检查器上的端口8080