我正在尝试将一个应用程序用于侦听Docker镜像中的多个端口。
目前,我有一个带有前端和Python应用程序的Nginx服务器的docker镜像:Nginx在端口27019上运行,应用程序在5984上运行。
index.html文件侦听localhost:5984,但它似乎只在容器外部(在我的计算机的localhost上)监听它。
我现在唯一能让它工作的方法是在docker run中使用-p选项两次:
docker run -p 27019:27019 -p 5984:5984 app-test
。
这样做,我在我的计算机上生成两个localhost端口。如果我不放-p 5984:5984
它不起作用。
我打算为应用程序使用更多端口,所以我想避免为每个新端口添加-p xxx:xxx。
如何在容器内部创建应用程序(在这种情况下,index.html在27019)侦听同一容器内的另一个端口,而不必同时发布它们?可以推广到两个以上的端口吗?最终目标是在服务器/计算机上的单个端口上运行完整的应用程序,同时侦听Docker容器内的多个端口。
答案 0 :(得分:0)
如果要在同一个传出端口上公开两个虚拟主机,则需要一个代理,例如https://github.com/jwilder/nginx-proxy。
答案 1 :(得分:0)
将大量应用程序放入一个容器并不是一件好事,通常你应该将每个应用程序分成一个容器,这就是应该使用它的方式。
但是如果你绝对想要在一个容器中使用许多应用程序,你可以使用代理或编写一个可以打开你自己的端口的dockerfile。