我有3个Docker容器(nginx,php和mysql)通过docker-compose捆绑在一起。
在/etc/nginx/sites-enabled
我有两个网站的.conf文件。
magento2.loc > magento2.conf
pma.loc > pma.conf
在主机(Ubuntu)上,我相应地修改了/etc/hosts
。
127.0.0.1 > magent2.loc
127.0.0.1 > pma.loc
搬运工-compose.yml
version: '2'
services:
nginx:
(...)
links:
- php
(...)
php:
(...)
运行docker-compose up
后,服务器登录控制台显示:
如何让pma.loc与PHP一起使用?我需要多个PHP容器吗?
答案 0 :(得分:2)
实现您想要实现的目标的最简单方法是首先将数据库放在自己的容器中。然后,为每个网站创建一个容器,其中包含运行网站所需的组件,如下所示:
您将在每个网站容器和数据库容器之间建立链接。当然,您必须为每个网站创建虚拟主机,以便它们不会发生端口冲突。
对于您使用另一个Docker容器充当代理的问题,有一个稍微复杂的解决方案,该代理将流量适当地引导到每个网站。另一个解决方案,就是你现在要做的,是在同一容器中运行多个网站,你必须在容器中为每个网站建立server blocks(Nginx的虚拟主机术语)。
在任何情况下,您都应将数据库放在自己的容器中,并在Docker运行命令或Docker-Compose设置中链接到该容器。