在传统的 LAMP 服务器中,我们有运行 Apache 的 Linux、运行 MySQL 和 PHP。
我目前正在自学一种更现代的方法,作为自学 node.js 的开端。到目前为止,我已经成功地在虚拟机上运行了 Ubuntu,但我对需要相互构建哪些元素才能完成服务器创建有些困惑。
我想使用 composer、git 和可能的 redis 在 docker 上运行 node.js(这可能需要单独的服务器,我还不太清楚)。然后我想要一个类似的设置来运行 php/mysql,这样我的节点应用程序也可以使用这些技术的优势。这似乎与生产环境非常相似,可以形成一个良好的学习环境。
所以我认为正确的分层是:
- 虚拟框
- 运行安装了 composer、git 和其他实用程序的 ubuntu
- 运行 Docker 镜像
- 根据需要包含 node.js 或 php/mysql 服务器
- 进而运行常见的代码和框架
看起来对吗?我最不确定的是 docker 的作用 - 它是否也应该包含 ubuntu 映像以及 composer 和 git 安装应该放在哪里(在 os 层还是 docker 层?)。
对于此设置的一般性建议/批评将不胜感激。
答案1
我想我明白你想做什么。你的 Virtualbox Ubuntu 是主服务器,你应该在其中:
- Docker
- git 和所有实用程序
- 您的内容(html、php、css、js 等)
Docker 允许您安装容器化应用程序,即:
- Nginx 和 php-pfm
- MySQL
- NodeJS
您应该将它们视为应用程序,仅此而已。每个应用程序应该有一个容器,因此当您想要使用不同版本(例如 MySQL)时,您应该销毁该容器并创建一个新容器。每个容器都应公开需要访问的端口(例如,nginx 的端口 80 或 443)。此外,还应授予容器访问源文件所在的主服务器上的文件夹的权限(并使用 git 进行版本控制)。这样,销毁容器应该与卸载程序相同。