正在摸索用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
を 2 回実行すると、これらは 2 つのセットになります。 docker-compose.yml
对应一套 Nginx + PHP + MySQL。如果你分别在各自目录中 docker-compose up -d
了两次,那么这就是两套。
是的,如果你这么去分多个站,会浪费大量的内存空间,特别是 MySQL,因为有大量的重复。
Docker虽然轻量级,但是并不意味着可以去除重复内存占用,不会帮你压缩内存空间。
你这样的做法是绝对的隔离,让各站直接绝无交叉,从安全性来说很好,但是这种隔离就意味着多重副本。你要考虑是否需要这样的隔离。
或许你需要不以站点视角来看问题,而是以服务视角看问题。你需要的是3个服务,因此一套docker-compose.yml
docker-compose.yml
のセットは、Nginx、PHP、および MySQL の 3 つのサービスを実行します。次に、マルチサイトのニーズに合わせて、従来のサーバーのように nginx と mysql データベースを構成するだけです。 🎜