Heim > Fragen und Antworten > Hauptteil
正在摸索用docker运行LNMP环境,有个问题不是很清楚,
假设有两个分站,
aaa.xxxxxxx.com
bbb.xxxxxxx.com
对应有两个project文件夹,分别是project-a,project-b,
两个文件夹中分别有自己的docker-compose.yml文件,里面分别定义了nginx+php+mysql的一些东西。
问题:
在两个文件夹中分别执行docker-compose up
的时候,nginx+php+mysql是运行了两份,还是一份呢?
如果运行两份,那不是很占空间吗,当有N个分站的时候,那可咋办?
伊谢尔伦2017-04-24 09:13:38
一个项目目录中的 docker-compose.yml
对应一套 Nginx + PHP + MySQL。如果你分别在各自目录中 docker-compose up -d
了两次,那么这就是两套。
是的,如果你这么去分多个站,会浪费大量的内存空间,特别是 MySQL,因为有大量的重复。
Docker虽然轻量级,但是并不意味着可以去除重复内存占用,不会帮你压缩内存空间。
你这样的做法是绝对的隔离,让各站直接绝无交叉,从安全性来说很好,但是这种隔离就意味着多重副本。你要考虑是否需要这样的隔离。
或许你需要不以站点视角来看问题,而是以服务视角看问题。你需要的是3个服务,因此一套docker-compose.yml
运行三个服务,Nginx, PHP, MySQL。然后多站点的需求,像传统服务器一样,去配置 nginx 以及 mysql 数据库即可。