如何只使用一个端口同时使用docker和apache?

时间:2018-04-27 02:40:59

标签: apache docker

我使用端口80的apache,并且由于防火墙,服务器只能从端口80从外部访问。如果我运行如下命令,端口80将发生冲突。任何人都可以告诉我如何在同一端口支持两个应用程序(两个域映射到相同的IP,因此它们可能被域分开名称)?感谢。

docker run -d -p 80:8787 quay.io/hemberg-group/scrna-seq-course-rstudio

1 个答案:

答案 0 :(得分:1)

使用-p 80:8787运行docker将尝试侦听物理机。此外,Apache默认会收听80

您不能运行多个程序员来监听相同的PORT,但如果您只想要向公众开放到后端服务器的地图80,则可以使用Nginx作为您的委派服务器。然后你可以运行多个服务器。

以下是Nginx

的简单配置
server { # php/fastcgi
    listen       80;
    server_name  domain1.com www.domain1.com;
    access_log   logs/domain1.access.log  main;
    root         html;

    location ~ \ {
      server   127.0.0.1:8787;
      server   127.0.0.1:8788;
      server   127.0.0.1:8780;
    }
} 

您的容器可以按以下方式运行:

docker run -d -p 8787:8787 quay.io/hemberg-group/scrna-seq-course-rstudio
docker run -d -p 8788:8787 quay.io/hemberg-group/scrna-seq-course-rstudio

您的Apache服务器可以使用其他PORT进行配置,例如8780