gpt4 book ai didi

node.js - docker连接被拒绝nodejs应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:29 27 4
gpt4 key购买 nike

我启动docker容器:

docker run --name node-arasaac -p 3000:3000 juanda/arasaac

我的 Node.js 应用程序运行正常。

如果我想更改主机端口:

docker run --name node-arasaac -p 8080:3000 juanda/arasaac

网页未加载,来自浏览器控制台的日志:

Failed to load resource: net::ERR_CONNECTION_REFUSED
http://localhost:3000/app.318b21e9156114a4d93f.js Failed to load resource: net::ERR_CONNECTION_REFUSED

我需要在主机和容器中使用相同的端口吗?看来它知道如何解决 http://localhost:8080所以它加载了我的网站,但网页中的内部链接转到端口 3000,效果不太好:-(

最佳答案

当您在 Docker 容器中运行 Node.js 应用程序时,它只会向外部公开您使用 -p(小写)命令指定的端口。第一个实例“-p 3000:3000”将主机端口 3000 映射到从 docker 容器内公开的端口 3000。这提供了一对一的映射,因此任何尝试连接到 Node.js 服务的客户端都可以通过 HOST 端口 3000 进行连接。

当你执行“-p 8080:3000”时,docker会将主机端口8080映射到node.js容器端口3000。这意味着任何客户端通过主机调用你的node.js应用程序(意味着不在主机内)与您的 Node.js 应用程序相同的容器,或者不是来自链接或联网的 docker 容器)必须通过主机端口 8080 来执行此操作。

因此,如果您有外部服务希望在端口 3000 访问您的 Node.js,它们将无法访问。

关于node.js - docker连接被拒绝nodejs应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35444484/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com