你应该在docker中安装nginx吗?

时间:2014-11-14 01:42:44

标签: nginx docker lxc

我想知道你的docker镜像中是否有nginx的优点和缺点。有很多关于如何在docker上安装nginx的教程,但我要问的是,你应该或不应该这样做?

你应该在docker主机上安装nginx,并让它指向各个正在运行的容器(可能正在运行彩虹等)?或

你应该在容器中安装另一个nginx层吗?

我没有看到在docker容器中有另一个nginx的任何好处,但后来我想知道为什么会有这么多的教程,好像这是常识,我没有得到常识,这让我感到沮丧

编辑:

每个容器的配置越少,对我来说就越好。如果nginx容器和它后面的app容器之间存在紧密耦合,那么它肯定不是我正在寻找的解决方案,并且首先打败容器的目的。这就是为什么我倾向于在Docker主机上安装nginx。

如果我们要拥有一个nginx容器,容器应该独立于应用程序。特定于应用程序的配置(例如端口号和IP地址,工作进程数client_max_body_size)不应配置到容器中,除非在执行docker run时可以自定义它们。

1 个答案:

答案 0 :(得分:2)

这可能会因为基于意见而被关闭,但是我认为值得注意的是,docker应该参与联网到传输层(TCP / UDP)但不高(HTTP)。因此,我会说不,你不应该直接在你的docker主机上直接安装nginx作为反向代理,如果你想要nginx提供的功能,你应该在你的容器中安装nginx。

你可以决定在每个应用程序前面想要一个nginx容器(这看起来最符合容器化和分离以及不共享内容的整体思路),或者一个nginx容器来反转代理托管在容器中的几个应用程序在同一个主机上(整体更简单,但更紧密耦合,也许与docker的哲学不太和谐)。您也可以采用错误的方式,将您的应用程序和它的nginx放在同一个容器中,这样可以提供一个很好的连贯单元,但是否则会违反每个容器1个进程树的常见情况。