无法连接到暴露的Docker容器端口上的Node.js检查器

运行命令docker run -p 9222:9229 --name node-inspect-test -d node:alpine node --inspect-brk -e 'console.log("hello world")'应该公开node.js检查器 Docker主机上的端口9222

运行curl http://localhost:9222/json导致curl: (56) Recv failure: Connection reset by peer

使用docker exec -it node-inspect-test wget -qO- http://localhost:9229/json从容器中请求相同的端点成功。

为什么暴露的端口9222不能被转发到内部端口9229

我正在运行Docker版本17.06.0-ce,在Ubuntu 16.04.2上构build02c1d87。

默认情况下,节点检查器在回送接口上侦听。 --inspect-brk标志可以指定主机和端口。 为了使debugging器在所有接口上侦听,以便通过Docker主机访问,请使用标志--inspect-brk=0.0.0.0:9229