仅使用docker-compose,是否可以在同一主机上挂载多个nginx容器,并使每个容器共享端口80?
我想整理一个在同一主机上运行多个应用程序的系统。 每个应用程序由几个链接的docker容器组成,通过docker-compose文件彼此绑定,每个应用程序都使用主机系统的nginx作为反向代理暴露给世界。目前来看还不错。
每次我添加新的docker应用程序,我都需要为该应用程序在主机nginx中添加一个新的nginx.conf文件,但我更喜欢将nginx配置与应用程序的docker-compose文件捆绑在一起作为nginx容器,从而使每个应用程序在容器中干净地维护其所需的所有内容。然而,每个nginx容器需要侦听端口80,因此只有第一个可以绑定。主机nginx可以侦听端口80上的几个Web应用程序,但是否可以多个nginx实例做相同的事情?
更新:
因此,似乎这并不是严格可行的。目标是尽可能将特定于应用程序的大量nginx配置捆绑到应用程序中,因此我正在尝试一种解决方案,其中应用程序仍会启动自己的nginx容器,而主机nginx仅处理指向应用程序nginx的url路由。不确定性能如何,但这大大减少了应用程序与主机之间的纠缠。