比如我想在一台机器上搭建三套同样的php开发环境,主机的域名为:http://dev.xxx.com,然后我访问第一套环境的地址为:http://dev.xxx.com:8081,访问第二套环境的地址为:http://dev.xxx.com:8082,访问第三套环境的地址为:http://dev.xxx.com:8083,这样做的目的就是为了一个做dev开发环境,一个做测试环境,一个做beta测试环境。
请docker大神讲讲该如何实现,多谢!
比如我想在一台机器上搭建三套同样的php开发环境,主机的域名为:http://dev.xxx.com,然后我访问第一套环境的地址为:http://dev.xxx.com:8081,访问第二套环境的地址为:http://dev.xxx.com:8082,访问第三套环境的地址为:http://dev.xxx.com:8083,这样做的目的就是为了一个做dev开发环境,一个做测试环境,一个做beta测试环境。
请docker大神讲讲该如何实现,多谢!
你直接建立三套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
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
2 回答799 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
你这个使用web服务器,比方说nginx,根据配置不同端口以及项目目录,实现部署不同开发环境。