Docker noob在这里。用Docker容器设置了一个开发服务器。我能够运行基本容器。 例如
docker run --name node-test -it -v "$(pwd)":/src -p 3000:3000 node bash
按预期工作。当我有许多小型项目时,我想绑定/监听实际的http localhost路径而不是端口。像这样
docker run --name node-test -it -v "$(pwd)":/src -p 3000:80/node-test node bash
有可能吗?谢谢。
编辑。基本上,我想在浏览器窗口中键入localhost/node-test
而不是localhost:3000
答案 0 :(得分:2)
听起来,您想要Docker容器通过某种方式在Docker http://localhost/some/random/path
选项中指定该路径来响应--port
这样的URL。
对此的简短回答是“否”,那是不可能的。原因是端口与路径没有任何关系-HTTP服务器监听端口并提供找到的资源 路径。请注意,有许多不同类型的服务器,并且所有服务器都在某个端口上侦听,但是其中许多(大多数?)根本没有路径概念。例如,考虑一个SMTP(邮件传输)服务器-它经常在端口25上侦听,但是路径对它意味着什么?它所做的只是将邮件从一台服务器传输到另一台服务器。
有两种方法可以完成您想做的事情:
编写您的应用程序以响应特定路径。例如,如果您在节点应用程序中使用Express框架,请为所需路径创建一条路由。
使用proxy server接受一条路径上的请求,并将其中继到正在侦听另一条路径的服务器上。
请注意,这与Docker无关-如果在任何服务器上运行应用程序,您将面临两个相同的选择。