Php Docker分离容器与耦合容器
我有几十个php应用程序,我想dockerize。我想知道什么是管理和性能方面的最佳设计Php Docker分离容器与耦合容器,php,mysql,docker,nginx,Php,Mysql,Docker,Nginx,我有几十个php应用程序,我想dockerize。我想知道什么是管理和性能方面的最佳设计 一个包含所有服务的大容器(php fpm、mysql、nginx等) 所有服务的单独容器: container-php-fpm-app1 container-nginx-app1 container-mysql-app1 container-php-fpm-app2 container-nginx-app2 container-mysql-app2 一个服务容器,该服务承载所有应用: 容器php fp
- container-php-fpm-app1
- container-nginx-app1
- container-mysql-app1
- container-php-fpm-app2
- container-nginx-app2
- container-mysql-app2
- 容器php fpm-适用于所有php fpm池
- 容器nginx-适用于所有nginx虚拟主机
- 容器mysql-适用于所有数据库
你们怎么看?我见过的最常见的模式是每个应用程序都有一个单独的容器。这就是说,让相关容器彼此靠近但仍然不同也有价值,因此库伯内特斯中使用了豆荚的概念
我建议每个应用程序使用一个容器 您应该在一个容器中运行一个服务,这就是它的设计方式。那么1就不在了 如果你看三个,你的应用程序之间有一个紧密的耦合。如果您想迁移到app1的新php版本,或者在那里有不同的依赖关系,那么您就有麻烦了,所以这不是一个好问题 标准是做2。每个服务一个容器。每个docker文档: 通常建议您通过以下方式将关注的领域分开: 每个容器使用一个服务。这项服务可能会分成多个分支 进程(例如,Apache web服务器启动多个工作进程) 过程)。有多个流程是可以的,但要获得最多 受益于Docker,避免一个容器负责 整个应用程序的多个方面。您可以连接多个 使用用户定义的网络和共享卷的容器 也基于他们的: 每个容器应该只有一个问题 将应用程序解耦到多个容器中使其更加容易 水平缩放并重复使用容器 我建议使用选项2(所有服务使用单独的容器)