我非常熟悉 VirtualBox,但有人告诉我“哦,你应该使用 Docker”,但我们似乎无法进行足够的交流来让我理解原因。
基本上,我想与朋友共享一个软件开发环境,这样我们就可以确定我们拥有相同的 IDE、包、插件/扩展等;唯一的区别是我们每个人当前正在处理的代码,以及通过 Git 输入和输出的代码。
我希望我们可以只使用 VS Code 作为 IDE,尽管会有 PHP 服务器端和 Flutter/Dart 客户端,并且我的朋友熟悉 Android Studio 并更喜欢将其用于客户端。
我会强烈更喜欢使用单个 IDE(VS Code),并希望说服他。尽管,最终可能会安装两个 VS Code,一个带有前端,一个带有后端扩展。我并不是在寻求有关该决定的帮助,只是想指出我们的 VM 中可能有什么。
我们还需要一个 Apache 服务器,可能还需要 Libre Office 来存储文档。
我对 Docker 了解甚少,因此我相信它会更小,但思考它更倾向于单一应用程序。
如果是 VirtualBox,我只会安装 Ubuntu 和apt get install
一些应用程序。对于 Docker,我不知道从哪里开始,尽管我确信 YouTube 会提供一些信息。
所以,我想我的问题是是否可以/应该为此使用 Docker,以及它有什么优势?
答案1
如果我理解正确的话,您应该设置一个新环境并与其他人共享,或者以其他方式提供对它的访问权限,对吗?
您有使用 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 远程桌面连接到您的服务器并直接从您的服务器上工作。