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

问题描述 投票:1回答:2

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

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

php amazon-web-services docker docker-compose lamp
2个回答
2
投票

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

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

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


1
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.