我已经在单个Windows Server 2016上部署了20个ASP.Net容器。这里我有相同IP的不同端口的点容器正常工作。我需要在端口80上公开容器中的所有站点以分隔子域(例如:site1.serveraction.com,site2.serveraction.com)
但只有一个容器正在运行另一个容器。
这里我的Docker撰写文件:
版本:'3' 服务: SITE1: 图片:“raj / con:site1” 环境: - HOST_NAME = 13.92.51.1XX - VIRTUAL_HOST = site1.serveractions.com 端口: - “80:80”
版本:'3' 服务: 站点2: 图片:“raj / con:site2” 环境: - HOST_NAME = 13.92.51.1XX - VIRTUAL_HOST = site2.serveractions.com 端口: - “80:80”
答案 0 :(得分:0)
它按预期工作。一个主机端口(在这种情况下为80)只能由一个容器使用,因为只有一个端口80.在您的情况下,解决方案是将主机的不同端口映射到容器中的端口80,即
对于容器1 - >使用端口说72801到端口80,即-p 72801:80
对于容器2 - >使用端口说72802到端口80,即-p 72802:80
对于容器20 - >使用端口72820到端口80,即-p 72820:80
现在任何访问容器1的服务都必须转到(地址):72801,它将被转发到容器1的端口80,这样可以确保你没有任何代码相关的改变但是方式(或访问容器的服务将会改变。