如何利用docker在同一台机器上搭建多套php开发环境?

小七哥
  • 142

比如我想在一台机器上搭建三套同样的php开发环境,主机的域名为:http://dev.xxx.com,然后我访问第一套环境的地址为:http://dev.xxx.com:8081,访问第二套环境的地址为:http://dev.xxx.com:8082,访问第三套环境的地址为:http://dev.xxx.com:8083,这样做的目的就是为了一个做dev开发环境,一个做测试环境,一个做beta测试环境。

请docker大神讲讲该如何实现,多谢!

回复
阅读 1.3k
4 个回答

你这个使用web服务器,比方说nginx,根据配置不同端口以及项目目录,实现部署不同开发环境。

你用docker直接创建三个容器,部署三套LNMP环境,然后分别监听不同的端口就好了啊

你直接建立三套php+nginx+mysql(+redis)容器,分别监听不同端口就好了。每一套都是nginx去link php,php去link mysql和redis就好了。然后每一套都是互不干扰的,建议你再看一下关于docker搭建lnmp的相关博客什么的。图片描述

首先是一个容器要包含完整的程序加依赖(出去中间件),拿 LNMP 举例子:docker 提供的是 Linux 环境,容器中要包含 Nginx 和 Php,然后再单独部署一个 MySQL

其次,如果多个环境,可以使用多个容器,简单的可以直接使用 -p 参数加端口区分,对于 web 程序也可以通过域名区分环境(下图仅供参考,不建议把生产环境和开发环境放在同一台机器上):

                    +---------+  +--------------+       +--------------------+
                    |         |  |              |       |                    |
                    |         |  |    Dev       +------>+                    |
 http://dev.xxx.com |         |  |              |       |                    |
+------------------->         |  +--------------+       |     DB for Dev     |
                    |  Nginx  |                         |                    |
                    |         |  +--------------+       |     DB for test    |
 http://test.xxx.com|  Proxy  |  |              |       |                    |
+------------------->         |  |    Test      +------>+                    |
                    |         |  |              |       |                    |
                    |         |  +--------------+       +--------------------+
 http://prod.xxx.com|         |
+------------------->         |  +--------------+       +--------------------+
                    |         |  |              |       |                    |
                    |         |  |    Prod      +------>+     DB for prod    |
                    |         |  |              |       |                    |
                    +---------+  +--------------+       +--------------------+

参考下这篇文章:https://blog.ihypo.net/148480...

开发环境的容器只需要部署的容器中带上 VIRTUAL_HOST=http://dev.xxx.com
测试环境的容器只需要部署的容器中带上 VIRTUAL_HOST=http://test.xxx.com

你知道吗?

宣传栏