容器被称为云开发的绝佳工具,它允许软件在从一个计算环境移动到另一个计算环境时可靠地运行。但是,作为开发人员,他们还有许多其他方式可以改善我们的生活。本文着眼于如何充分利用容器,以及如何在出现问题时解决问题。我们将用另一篇文章跟进这篇文章,专门从嵌入式开发人员的角度来看容器。
什么是容器?
容器在应用程序开发场景中得到迅速接受,主要是因为它们解决了可移植性问题。简而言之,容器将整个系统组件化,将它们从物理平台中抽象出来,允许它们在平台之间、平台到云或云到云之间移动。很多人不知道的是,便携性的优势也让他们可以做更多的事情。
了解容器就是了解软件开发的未来。以下是如何最好地利用这种软件创新。
在环境之间移动项目
如果您有多个工作站(例如台式机和笔记本电脑,或多台笔记本电脑),容器使得在环境之间移动项目变得微不足道。不必担心在两台计算机上都拥有您需要的所有正确工具、文件或目录,而是很容易将整个乱七八糟的东西放在一个容器中。然后只需将容器复制到您需要工作的任何新环境中,您的设置每次都肯定是正确的。
我听到你说,“我只是把我所有的工具都放在 git 中。” 这可能适用于较小的、自包含的工具,但 git 不是非常友好的二进制文件,并且您不太可能在文件系统的根目录创建一个 git 存储库来捕获安装到 /bin、/usr/lib 中的文件,或 / 等。容器让您可以集中大型或侵入性工具安装,使容器成为更广泛适用的解决方案。
避免依赖地狱
共享组件的多个项目可能会很麻烦。如果这些项目是使用不同版本的共享库构建的,您通常会发现您正在管理相互冲突的依赖项,除非您可以将所有项目置于相同的基线集。这并不总是可行的,特别是如果您正在开发组织无法控制的软件,例如开源项目或第三方组件。
但是,如果每个项目都将其所有文件(包括任何依赖库)放入一个容器中,则这些项目可以并行运行,而不会对其开发人员造成依赖地狱。如果您的公司为多个客户处理软件项目,这会特别方便。每个客户端的环境都放入一个单独的容器中,允许客户端使用他们需要的任何库、编译器或工具链,而不会影响开发人员管理的任何其他环境。
试用新软件
渴望尝试新的工具更新吗?没有人想发现您刚刚安装的新软件包覆盖了您的项目所依赖的文件,例如具有更高版本(且 API 不兼容)的共享库。容器允许您下载和试用新软件,而不必担心会搞砸。使用适当的容器化环境,可以轻松地将您的计算机恢复到开始尝试实验代码之前的位置。
使用 WINE 在 Linux 中运行 Windows 应用程序是一个完美的例子。WINE 安装因需要大量各种文件而臭名昭著。摆脱 WINE 以返回已知系统状态非常具有挑战性,因为您不仅需要删除该应用程序,还需要删除它可能已安装的任何其他内容。将 WINE 应用程序放入容器中可以让您确信您可以删除该应用程序并保证您恢复正常,而不会产生依赖性宿醉。
向项目添加新成员
您的项目正在扩大规模,您需要包括其他开发人员&#x