如何在nginx和php容器之间进行通信

我有PHP web application ,我想转换成docker

我有这些容器

 mysql php nginx 

我的主机文件夹中有源代码/var/www/site1

现在当我启动nginx的时候,我可以挂载site1到nginx作为/usr/nginx/share/html

但我不知道如何链接与PHP Conainer。 我不能独立PHP容器只安装PHP或我需要有一些networking服务器与PHP

我对Docker容器的看法是,每个容器通常代表一个进程 。 比如你的例子中的mysql或者nginx 。 容器通常使用networking或卷上的共享文件相互通信。

每个容器都运行自己的操作系统(通常在DockerfileFROM指定),在这种情况下,您build议nginx Dockerfile在一个进程中运行一个操作系统,并且php-libraries运行在不同的进程(在不同的操作系统),我不确定这是否可行,但似乎是一种奇怪的做事方式。

我的build议是你创build两个容器:

  • nginx+php – 这个容器包含PHP安装以及Nginx的东西
  • mysql – 这个容器包含数据库

容器可以通过传统的networking或链接的容器进行通信。

但是,您希望执行的PHP文件(即您的网站)应该作为数据卷dynamic装载到nginx+php容器或数据卷容器中 。