我遵循这个教程为我的node.js rest设置docker,教程中有以下一行:
docker run -p 49160:8080 -d <your username>/node-web-app下面的描述是:
-p标志将公共端口重定向到容器内的专用端口。运行您以前构建的映像:
从描述中,我知道端口49160是公共端口,8080是专用端口。因为我在我的nodejs应用程序中公开了端口5001,所以我认为我正在运行:
docker run -p 49160:5001 -d <your username>/node-web-app但究竟什么是公共港口?为什么是"49160"?
发布于 2020-01-18 06:38:27
在您的示例中,端口8080指向位于Docker容器内的某个服务器(可能是web服务器/节点)。外部(您正在处理的主机)端口是49160。名为-p的Docker设置将内部端口8080连接到外部端口49160。如果您现在打开主机系统中的浏览器并访问url http://localhost:49160,那么实际上您将访问容器内的端口8080。
端口8080通常用于web服务器。但这并不是强制性的。
端口49160只是您或本教程的作者决定以其为例的某个端口。
如果容器中有服务器侦听端口5001,则在安装过程中将无法访问它。如果希望使其可访问,可以修改以下命令:
docker run -p 49160:8080 -p 49159:5001 -d <your username>/node-web-app发布于 2020-01-18 06:34:16
它可以是任何东西。教程只是使用了一个随机端口。你想怎么改就怎么改。然后,您可以访问运行在本地主机端口5001的容器内的节点-web应用程序:49160来自您的主机。
https://stackoverflow.com/questions/59798094
复制相似问题