如何访问同一容器内的Docker容器的多个端口?

时间:2017-02-07 22:54:04

标签: python-3.x networking nginx docker

我正在尝试将一个应用程序用于侦听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容器内的多个端口。

2 个答案:

答案 0 :(得分:0)

如果要在同一个传出端口上公开两个虚拟主机,则需要一个代理,例如https://github.com/jwilder/nginx-proxy

答案 1 :(得分:0)

将大量应用程序放入一个容器并不是一件好事,通常你应该将每个应用程序分成一个容器,这就是应该使用它的方式。

但是如果你绝对想要在一个容器中使用许多应用程序,你可以使用代理或编写一个可以打开你自己的端口的dockerfile。