docker Web 服务器的最佳实践,多层还是单层?
Best practice for docker webserver, muliple layers or single layer?
我想构建一个 docker 网络服务器,为多个网站提供 Nginx、PHP 和 MySQL 服务。
每个组件 运行 一个单独的 docker 容器是否更好,即一个用于 MySQL,一个用于 Nginx,一个用于 PHP,另一个用于我的网站数据。
或 运行 多个容器,每个容器包含所有服务(MySQL、PHP、Nginx 和站点数据),每个网络应用一个?
或者只有一个包含所有服务,另一个包含站点数据?
我主要关心的是数据备份,以及有效地使用硬件。
通常我们认为容器是进程。一个进程完成一项工作。
所以建议尽可能简化容器。为每个服务设置容器
正如 BMW 提到的,Docker 建议简化容器。容器应该是可移植的轻量级微服务。使用 Docker cli --link 函数连接每个服务非常容易。
Tutum 有一个分离的 LAMP 堆栈的例子。 Web 服务器位于与 PHP 代码相同的容器中,但这应该足够了。我不明白为什么有必要将 Nginx 移到另一个容器上,除非你打算进行负载平衡。
这是图图姆的例子:
https://github.com/tutumcloud/lamp
我想构建一个 docker 网络服务器,为多个网站提供 Nginx、PHP 和 MySQL 服务。
每个组件 运行 一个单独的 docker 容器是否更好,即一个用于 MySQL,一个用于 Nginx,一个用于 PHP,另一个用于我的网站数据。
或 运行 多个容器,每个容器包含所有服务(MySQL、PHP、Nginx 和站点数据),每个网络应用一个?
或者只有一个包含所有服务,另一个包含站点数据?
我主要关心的是数据备份,以及有效地使用硬件。
通常我们认为容器是进程。一个进程完成一项工作。
所以建议尽可能简化容器。为每个服务设置容器
正如 BMW 提到的,Docker 建议简化容器。容器应该是可移植的轻量级微服务。使用 Docker cli --link 函数连接每个服务非常容易。
Tutum 有一个分离的 LAMP 堆栈的例子。 Web 服务器位于与 PHP 代码相同的容器中,但这应该足够了。我不明白为什么有必要将 Nginx 移到另一个容器上,除非你打算进行负载平衡。
这是图图姆的例子: https://github.com/tutumcloud/lamp