我决定在我的所有项目中开始使用docker,在部署时我对最佳实践感兴趣。
如果我有一个本地docker环境,即运行php-apache,mysql和redis服务,部署时最好的策略是什么?你有一个自定义docker-compose配置用于生产,它删除了redis和mysql服务(假设你想要在他们自己的专用服务器上)?
有许多可行的方法可以在生产中运行PHP容器,因此全面回答您的问题有点困难。我会提供一些选择:
作为关于数据库容器的说明,您可以对数据库进行容器化,并假设您将实际数据放入卷中并且具有合理的备份系统,因此没有理由说容器不安全。您可能希望首先为数据库运行一个容器,或者使用托管数据库服务,因为跨多个容器扩展数据库可能会变得复杂(但是here's a little bit about how you might do it with MySQL)。
我想我会自己回答这个问题。
经过一些更深入的挖掘后,我发现在容器中部署数据库并不是一个好主意。如果我使用swarm,那么在整个系统中维护数据完整性将非常困难。
看起来大多数人只是单独托管数据库,并且只在本地开发环境中容纳数据库。
因此,对于部署,现在最好的选择是仅部署配置的Web服务器和任何其他无状态服务器要求。