php - docker compose 的最佳部署策略(LAMP 堆栈)

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

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

如果我有一个本地 docker 环境,正在运行 php-apache、mysql 和 redis 服务,那么部署时的最佳策略是什么?您是否有用于生产的自定义 docker-compose 配置,该配置删除了 redis 和 mysql 服务(假设您希望它们位于自己的专用服务器上)?

最佳答案

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

  • 使用容器托管服务,如 Docker Cloud使用内置的 Apache 服务托管您的 PHP 代码。
  • 使用托管在您自己的服务器上的编排服务(例如 SwarmKubernetes )。您将在这里进行更多设置,但它也会为您提供更多控制权。还有一些服务可以让这变得更容易,例如 RancherCodemason .
  • 在一台机器上运行 docker-compose。当然,它不能水平扩展,但如果您只是在开发一个业余项目或小型应用程序,则可以在一台服务器上运行所有容器来启动。

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

关于php - docker compose 的最佳部署策略(LAMP 堆栈),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48361301/

相关文章:

javascript - 在 laravel 中删除确认

amazon-web-services - 如何使用s3cmd多线程?

amazon-web-services - 在 ec2 实例终止时获取电子邮件通知

docker - org.apache.druid.java.util.common.ISE : No default server found

docker - 读取Docker容器内主机的IP地址

php - 如何将字符串数组转换为 PHP 中的关联数组?

php - 违反完整性约束 : 1048 Column 'name' cannot be null

php - 从 mysql 表中检索数据时循环显示相同的图像

amazon-web-services - 如何跟踪AWS中未使用的资源?

postgresql - 使用官方 PostgreSQL 和 GitLab docker 容器的 GitLab 设置不起作用