可以在docker端口后添加前缀

我正在与docker集装箱主办我的angular4项目。 我有nginx服务器中介我的客户端和我的API。 没有find方式来访问我的前端像这个localhost /咖啡。

而不是推荐的方式访问docker127.0.0.1:9000

docker run -p 9000:80 image

我可以这样做127.0.0.1:9000/coffee之后

 docker run -p 9000/coffee:80 image. 

我有权访问活动服务器上的端口9000上打开的localhost / coffee。 我需要在我公开的端口docker端口添加前缀咖啡。

docker端口后不能添加前缀。只能映射端口。 要访问像localhost / coffee这样的前端,你可以configurationnginx来处理这个场景(configuration位置为/ coffee和代理请求到你的后端服务器)。

@Girdhar Sojitra是正确的。 您需要使用nginx作为反向代理。 我想添加一些通知。 Jwilder的nginx-proxy可以为你的每个后端自动configuration子域名。

端口和请求url是两个不同的东西。 端口用于networking通信,请求URL用于networking服务器。 所以当你跑步

 docker run -p 9000:80 image 

如果你得到的应用程序在localhost:9000 ,你需要改变它为localhost:9000/coffee这个变化需要进入你的代码或在你的Web服务器configuration,而不是在docker运行命令。

一个简单的nginxconfiguration会

 http{ server { listen 80; location /coffee/ { proxy_pass http://yourbackendcontainer:backendport/; } } 

如果你需要/coffee/也作为URL的一部分传递给你的后端,那么你可以将configuration更改为下面

 http{ server { listen 80; location /coffee { proxy_pass http://yourbackendcontainer:backendport; } }