Docker撰写的最佳部署策略(LAMP堆栈)

时间:2018-01-20 21:30:01

标签: php amazon-web-services docker docker-compose lamp

我决定在我的所有项目中开始使用docker,在部署时我对最佳实践感兴趣。

如果我有一个本地docker环境,即运行php-apache,mysql和redis服务,部署时最好的策略是什么?你有一个自定义docker-compose配置用于生产,它删除了redis和mysql服务(假设你想在他们自己的专用服务器上那些)?

2 个答案:

答案 0 :(得分:2)

有许多可行的方法可以在生产中运行PHP容器,因此全面回答您的问题有点困难。我会提供一些选择:

  • 使用容器托管服务(如Docker Cloud)通过内置的Apache服务托管您的PHP代码。
  • 使用托管在您自己的服务器上的业务流程服务(如SwarmKubernetes)。您将在此处进行更多设置,但它也会为您提供更多控制权。还有一些服务可以让RancherCodemason更加轻松。
  • 在一台计算机上运行docker-compose。当然,它不是水平可扩展的,但如果您只是在侧面项目或小型应用程序上工作,您可以在一台服务器上运行所有容器来启动。

作为关于数据库容器的说明,可以对数据库进行容器化,假设您将实际数据放入卷中并且具有合理的备份系统,那么容器就没有理由不会注意安全。您可能希望首先为数据库运行一个容器,或者使用托管数据库服务,因为跨多个容器扩展数据库可能会变得复杂(但here's a little bit about how you might do it with MySQL)。

答案 1 :(得分:1)

我想我自己会回答这个问题。

经过一些更深入的挖掘后,我发现在容器中部署数据库并不是一个好主意。如果我使用swarm,那么在整个系统中保持数据完整性将非常困难。

看起来大多数人只是单独托管数据库,并且只在本地开发环境中容纳数据库。

因此,对于部署,现在最好的选择是仅部署配置的Web服务器和任何其他无状态服务器要求。