+-
LNMP 多个项目共用一个容器,还是为每个项目都创建独立的容器

我本地现在是PHP、MYSQL、NGINX 三个容器。所有的项目都共用这三个容器。不同项目对环境的配置有细微的差别,例如对PHP扩展的需求每个项目都不一样,目前是把每个项目需要的扩展都在PHP容器中安装了,这样项目之间环境的隔离性就不存在了。问题是:

是否每个项目都应该有一套属于自己的NMP容器环境?这样项目多了,容器也会很多,如何管理? 上面的问题答案如果是,那么是应该把PHP、MYSQL、NGINX创建到一个容器中,还是单独分开创建。这里有什么经验之谈?

谢谢!

我对容器经验不多,不过按照我的理解,应该是 一个项目 对应一个容器,即不管这个项目需要哪些组件,都放到一个容器里。

1、每个项目都应该有属于自己的环境,每个项目的容器之间的关系可以通过docker-compose来管理,所有项目的镜像通过镜像仓库统一管理,这样假设你有n个项目,你也只需管理n个docker-compose.yml文件和1个镜像仓库。

2、PHP、mysql、nginx应该单独创建,第一使用了docker-compose,3个容器在一个docker-compose.yml文件都管理好了,直接启动就行很方便;第二单独部署的好处还体现在对于php和nginx这些无状态应用可以随时弹起多个副本;第三如果你们后续有迁移到k8s的计划,单独部署会比较省事。

docker为什么产品? 就是为了把运行环境代码打包到一起