【发布时间】:2019-06-23 02:51:51
【问题描述】:
我的任务是维护几个网络应用程序,所有这些应用程序都使用 LAMP 堆栈。其中一些在 PHP 5.6 上运行,其中一些在 PHP 7.0 上运行,一些使用 Wordpress,一些使用 Symfony... 理想情况下,我想在家中设置与生产环境尽可能相同的测试/开发环境。
我一直在研究 Docker(警告:这里是新手!),看看它是否适合我的需要。我将在 Windows 和 Mac 上工作,我想在我的机器上拥有几个 LAMP 环境,每个环境都有自己的 PHP/MySQL/etc 版本,彼此隔离,并且都在同一个环境中运行虚拟机(因为否则我还不如只使用我熟悉的东西并设置不同的虚拟机)。 Docker 能做到吗?
(对不起,如果这听起来像一个愚蠢的问题:阅读 Docker,我的印象是容器理念允许您精确地做我描述的事情,而不会像使用虚拟机那样浪费资源,但是,我还没有找到任何关于同时运行多个 LAMP 环境)。
【问题讨论】:
-
Docker 与 VM 具有相同的概念,只是所有容器共享相同的 Guest OS,而不是拥有单独的 Guest OS。这意味着它们可以在容器(CPU/RAM)之间动态共享资源。与 VirtualBox 不同,不管它是否需要,它都会占用大量资源;所以这意味着你可以告诉容器使用 1GB 的 RAM,但是,与 VM 不同,容器会将它不使用的内存返回给主机。
-
也许你想要“Docker Compose”docs.docker.com/compose
-
@Scuzzy:根据我的阅读,Docker Compose 允许您在一个环境中“链接”多个容器:nginx + PHP + MySQL 等。但我要问的是你是否可以在一个虚拟机中同时拥有多个这样的“链”。看起来下面提到的这个“Php Docker Stack”就是我要找的东西,所以我会检查一下。