我对 VirtualBox 非常熟悉,但有人告诉我“哦,你应该使用 Docker”,我们似乎无法进行足够的交流以让我理解为什么。
基本上,我想和朋友分享一个软件开发环境,这样我们就可以确定我们有相同的 IDE、包、插件/扩展等;唯一的区别是我们每个人当前正在处理的代码,并且可以通过 Git 进出。
我希望我们可以只使用 VS Code 作为 IDE,尽管会有 PHP 服务器端和 Flutter/Dart 客户端,而我的朋友熟悉 Android Studio,并且更愿意将其用于客户端。
我强烈希望使用单个 IDE(VS Code)并希望影响他。虽然,结果可能是两个 VS Code 安装,一个带有前端,一个带有后端扩展。我不是在为这个决定寻求帮助,只是想指出我们的虚拟机中可能存在什么。
我们还需要一个 Apache 服务器,可能还需要 Libre Office 来提供文档。
我对 Docker 知之甚少,让我相信它会更小,但我认为它更倾向于单个应用程序。
如果是 VirtualBox,我只会安装 Ubuntu 和apt get install
一些应用程序。使用 Docker,我不知道从哪里开始,尽管我确信 YouTube 会提供丰富的信息。
所以,我想我的问题是我可以/应该为此使用 Docker,它有什么优势?
如果我对您的理解正确,您将设置一个新环境并与其他人共享,或者以其他方式提供对它的访问权限,对吗?
您有使用 Oracle VirtualBox 的经验,但一位朋友推荐了 Docker。
如果您的目标是与其他人共享此 VM 实例,以便他们在该实例中本地工作,那么他们建议 Docker 的原因很可能是因为他们正在使用 Docker。Docker 使用 Microsoft Hyper-V,如果您使用 Oracle VirtualBox,您也不能同时使用 Hyper-V 或 Docker,这意味着如果他们已经使用 Docker,他们将不再能够这样做。
如果您允许他们远程访问您的服务,那么对他们来说无关紧要,只有您设置访问权限的方式很重要,但这可能会使他们的开发速度变慢。
当然,您可以使用 Hyper-V 并与他们共享 VHDX 文件以实现相同的目标,但有一个虚拟机。
我确实与您一样担心 Docker 更多地用于一个应用程序,而不是对多个应用程序进行分组。Docker 似乎托管了一项服务并与它进行远程交互,而不是将其用作连接的服务。
因此,我的回答是,坚持你所知道的,如果他们因为不想失去使用 docker 的能力而请求 Docker,那么请考虑使用 Hyper-V。这当然意味着您将不再能够自己使用 VirtualBox。
如果这不是一个选项,那么最好的解决方案是使用 VirtalBox,安装所有内容,创建多个用户帐户并安装 xrdp,以便他们可以使用 Microsoft 远程桌面连接到您的服务器并直接在您的服务器上工作。