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

发布于 2022-09-11 17:56:32 字数 432 浏览 13 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

聆听风音 2022-09-18 17:56:32

首先是一个容器要包含完整的程序加依赖(出去中间件),拿 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

流云如水 2022-09-18 17:56:32

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

动听の歌 2022-09-18 17:56:32

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

塔塔猫 2022-09-18 17:56:32

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文