Node.js Docker发布的端口不可访问,3000除外
我觉得我要问的问题很傻,但我找不到解决问题的办法,我已经研究这个问题有一段时间了 我正在尝试使用类似以下命令为节点应用程序运行docker容器:Node.js Docker发布的端口不可访问,3000除外,node.js,docker,Node.js,Docker,我觉得我要问的问题很傻,但我找不到解决问题的办法,我已经研究这个问题有一段时间了 我正在尝试使用类似以下命令为节点应用程序运行docker容器: $ docker run --rm -d -p 3000:3000 <username>/<project> 上述命令工作正常。但是,当我尝试将端口映射到其他端口时,例如: $ docker run --rm -d -p 3000:8080 <username>/<project> …这个程序不起作用
$ docker run --rm -d -p 3000:3000 <username>/<project>
上述命令工作正常。但是,当我尝试将端口映射到其他端口时,例如:
$ docker run --rm -d -p 3000:8080 <username>/<project>
…这个程序不起作用了
编辑:回答评论中的问题。我还尝试了端口5000和7000,我确信它们没有被使用。我认为您试图在映射中更改错误的端口: docker运行-publish=${HOST\u PORT}:${CONTAINER\u PORT}/ 将主机的${host\u PORT}映射到容器的${container\u PORT} 除非您更改容器映像的配置,否则您更有可能选择主机端口 如果您: docker run-rm-d-p 8080:3000/
以及从主机进行的尝试,例如curl localhost:8080?您尝试过8080以外的其他端口吗?也许这个已经被另一个程序使用了?docker run-rm-d-p8080:8080/。在浏览器中,如果已经有8080端口,则chekck可以使用ps-af commandExec列出此命令lsof-i:8080,使用8080端口try-p 8080:3000返回哪个端口。第一个端口用于主机,第二个端口用于容器。因此,如果您更改容器1,您的应用程序将不再可访问8080是否有一些东西正在使用此端口的容器内运行?