【发布时间】:2016-07-23 11:14:11
【问题描述】:
我的问题类似于this 问题,但只有一个域。
是否可以在同一台服务器上运行多个 docker 容器,它们都在端口 80 上,但 URL 路径不同?
例如:
在内部,所有应用程序都托管在同一个 docker 服务器上。
172.17.0.1:8080 => app1
172.17.0.2:8080 => app2
172.17.0.3:8080 => app3
在外部,用户将通过以下 URL 访问应用程序:
www.mydomain.com (app1)
www.mydomain.com/app/app2 (app2)
www.mydomain.com/app/app3 (app3)
【问题讨论】:
-
您可以使用nginx设置路由到不同的应用程序。你可以参考这个例如如何做到这一点 - stackoverflow.com/questions/19108044/…
-
多个容器不能在同一个端口上监听。更一般地说,一个单独的进程可以绑定到一个套接字(ip:port)。您需要一个反向代理(如 nginx)。
-
@Auzias 他们可以,每个人都有自己的网络命名空间,因此他们能够执行完全相同的操作。但是,它们不能都绑定到主机上的同一个端口,因为同一个端口只能使用一次。这里的解决方案是将每个容器绑定到主机上的其他端口,并使用 nginx 根据 url 进行路由
标签: nginx docker digital-ocean