Docker:没有NGinx的端口80上的多个容器

时间:2017-09-07 10:53:25

标签: linux docker nginx networking docker-compose

我想在同一个VM上运行多个Web服务器。每个Web服务器都是dockerized。

是否可以使用docker功能在端口80上运行具有不同域的多个dockerized Web服务器?

我找到了许多基于NGinx代理的解决方案,例如here,但我找不到任何用户定义的网络用法来解决这个问题。

如果没有运行反向代理,是否有解决此问题的方法?

3 个答案:

答案 0 :(得分:3)

没有

主机服务器上只有一个“真正的”端口80(对​​于每个网络地址),因此您需要能够在那里监听并转发到不同的后端服务器。

这不是特定于docker的问题。您无法在单个端口上运行多个(非Docker)Web服务器(每个域一个)。

那些东西不一定是nginx。

答案 1 :(得分:2)

据我所知,一般情况下,不能让多个容器监听端口80或同一端口。

您可以在VM上打开不同的端口,让应用程序专门监听每个端口。

例如,您可以让您的第一个应用程序侦听端口80.然后您的第二个应用程序侦听端口81等。

答案 2 :(得分:1)

首先,可以在同一端口上运行多个域,但要求是:

  1. 您在同一个Web服务器(Apache HTTPD或Nginx)上托管站点
  2. 您正在使用虚拟主机
  3. 如果需要,可以将一台服务器集装箱化。

    以下是在一个Nginx Web服务器上运行两个域的the example

    因此,根据您的要求,这可以成为解决方案。