你应该在Docker中安装nginx吗?

我想知道你的Docker镜像里面有没有nginx的优点和缺点。 有很多关于如何在docker上安装nginx的教程,但是我问的是,你应该还是不应该?

你应该在docker主机上安装nginx,并指向运行中的容器(可以运行彩虹等)? 要么

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

我没有看到在Docker容器中有另一个nginx的好处,但是我想知道为什么有这么多的教程,就好像这是常识,而我没有得到常识,这使我感到沮丧。

编辑:

每个容器的configuration越less,对我来说就越好。 如果nginx容器和后面的应用程序容器之间有紧密的耦合,那么它肯定不是我正在寻找的解决scheme,并且首先打破了容器的目的。 这就是为什么我倾向于在Docker主机上安装nginx。

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

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

你可以决定你想在你的每个应用程序前面都有一个nginx容器(这与容器化和分离的总体思路是一致的,而不是共享的东西),或者是一个nginx容器, (总体上更简单,但更紧密的联系,也许与码头的理念不那么和谐)。 你也可以采取phusion风格,把你的应用程序和它的nginx放在同一个容器中,这个容器提供了一个很好的连贯单元,但是否则就是违背每个容器一个进程树的常见情况。