我在 Windows 上使用 docker 桌面应用程序。 在 Ubuntu WSL2 中,我有一个 docker 容器,其中运行着meteor/nodejs 服务器。 从 WSL 内部通过 docker-compose 启动。
docker-compose.yaml
...
environment:
- ROOT_URL=http://localhost:8080
- PORT=8080
ports:
- "8080:8080"
现在 docker 容器内的应用程序必须访问自身的 HTTP 端点,如
http://127.0.0.1:8080/api
当我从码头外部调用此端点时,我得到了正确的结果。
当我使用终端连接到 docker 容器并卷曲端点时,我得到了正确的结果。
但是,当容器内运行的正在运行的应用程序/服务尝试通过具有相同 URL 的相同端点调用自身时,我收到
ECONNREFUSED - CONNECTION REFUSED
错误。
这可能是什么问题?也许是 WSL2 安全问题?
如果不查看实际代码或查看完整的错误消息,我无法确定什么,但请尝试替换你的
- ROOT_URL=http://localhost:8080
与
- ROOT_URL=http://127.0.0.1:8080
如果您还有任何其他带有 localhost url 的地方,也请替换它们。