我决定开始在我的所有项目中使用 docker,并且我对部署方面的最佳实践很感兴趣。
如果我有一个本地 docker 环境,正在运行 php-apache、mysql 和 redis 服务,那么部署时的最佳策略是什么?您是否有用于生产的自定义 docker-compose 配置,该配置删除了 redis 和 mysql 服务(假设您希望它们位于自己的专用服务器上)?
最佳答案
有许多可行的方法可以在生产中运行 PHP 容器,因此全面回答您的问题有点困难。我将提供一些选择:
- 使用容器托管服务,如 Docker Cloud使用内置的 Apache 服务托管您的 PHP 代码。
- 使用托管在您自己的服务器上的编排服务(例如 Swarm 或 Kubernetes )。您将在这里进行更多设置,但它也会为您提供更多控制权。还有一些服务可以让这变得更容易,例如 Rancher或Codemason .
- 在一台机器上运行 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/