Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Docker发布的端口不可访问,3000除外_Node.js_Docker - Fatal编程技术网

Node.js Docker发布的端口不可访问,3000除外

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容器:

$ 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是否有一些东西正在使用此端口的容器内运行?