通过租用办公空间来解释 Docker 容器

2025-06-07

通过租用办公空间来解释 Docker 容器

在过去的 15 年里,部署和管理 Web 应用程序变得越来越容易。

首先,像亚马逊网络服务 (Amazon Web Services)这样的服务允许你通过虚拟机轻松租用服务器的一部分,而不是购买整台服务器并在你的机房里运行。

现在,您可以使用Docker等服务,它使用容器使管理动态 Web 应用程序变得更便宜、更容易。

但是,新手 Web 开发人员经常会混淆这两种底层技术(虚拟机和容器)。虽然它们都使 Web 应用程序的部署变得更加容易,但它们之间存在一些显著的差异。

事实上,这有点像租用自己的办公空间和租用共享办公空间(通过 WeWork 这样的公司)之间的区别。因此,本教程将以办公室为例来说明它们之间的区别。

为了理解本教程,您必须首先了解 AWS 和虚拟机的概念。如果您需要先了解AWS,请查看我另外撰写的 AWS 指南。

现在,假设您是一家小型软件公司(5 名员工)的老板,并且正在寻找办公空间。

办公空间和服务器的历史

让我们回到2000年。如果你是一家小型软件初创公司,正在寻找办公空间,那么你的选择可能非常有限,而且成本高昂。你可以:

  1. 在购物中心购买一间小办公室(或类似的东西)
  2. 签订多年期租约并支付大笔预付款

你在产品上线时也会面临类似的困难。你需要购买一整台服务器,把它存放在某个地方,并确保它全天候在线。效率非常低。

但是,在过去的20年里,你的办公空间租赁选择已经发生了变化!随着科技初创企业越来越受欢迎,你可以选择一年期,甚至按月租约的方式租用办公室的一部分。

而且,随着共享办公空间在 2010 年代变得流行,您可以同时租用多家公司共享的空间内的一张办公桌或一个封闭的房间!

同时,这也在办公楼本身和管理办公楼所需的团队之间建立了不同的关系。

当你一次性购买整间办公室时,你还需要管理运营该空间所需的所有服务——零食、清洁、家具等等。如果说物理空间是硬件,那么办公服务就像软件。办公室管理员就像操作系统(OS),因为他们决定了办公室的运作方式。

然而,随着办公空间的普及,办公服务的复杂性也大幅提升。换句话说,需要协同工作的操作系统数量也随之增加。

例如,假设您的公司开始租用一栋大型办公楼的某一层。现在,必须有一位总办公室协调员来管理所有楼层,并且您也必须有自己的办公室协调员来管理您所在楼层的服务!

好吧,说实话,这是一家小公司,这意味着首席执行官可能是他们所在楼层的办公室协调员。

现在,每个 CEO 都需要弄清楚他们办公室的操作系统——哪些零食、什么时候打扫以及需要哪些家具。

至少这比购买房地产要好得多。

虚拟机和容器之间的区别

让我们将其与虚拟机和容器联系起来。

与我们的第二种情况非常相似,虚拟机在服务器上现有的操作系​​统之上添加了自己的操作系统。

并且,他们必须使用称为虚拟机管理程序的中间件层来允许每个虚拟机共享硬件容量。

它看起来有点像这样:

图片来源

因此,有三个级别的软件必须与应用程序中的文件协同工作:

  1. 主机操作系统
  2. 虚拟机管理程序
  3. 客户操作系统

当然,这确实有一些优势——例如,每个虚拟机都可以运行自己的操作系统,这增加了更多的灵活性。但是,它也增加了一系列资源密集型的软件层。

让我们回到办公空间的例子,学习如何使用集装箱。想象一下,现在是2015年,像WeWork这样的共享办公空间已经变得流行起来。

在这些共享办公空间,你只需按月支付每张工位的租金即可。物业经理会负责提供零食、清洁、家具以及其他一切服务。

换句话说,您可以从该空间现有的操作系​​统中受益!

它看起来是这样的:

太棒了!现在每位CEO都可以专注于经营自己的公司了。

事实上,这正是容器和虚拟机之间的关键区别——如上图所示,容器共享主机操作系统。这意味着它们不需要运行自己的操作系统,也不需要与虚拟机管理程序协作在多个操作系统之间分配硬件资源。

这意味着容器比虚拟机更具可扩展性——您可以在标准化环境中轻松部署新容器,故障点更少。此外,由于您无需为运行所有额外软件付费,因此也更具成本效益。

容器的优点/缺点

请记住,AWS 上有数百台服务器运行着完全相同的操作系统,遍布全球。这意味着您可以轻松地在全球范围内管理包含 Web 应用的容器,而无需太多开销或自定义设置。

容器有一个主要缺点——安全漏洞。每个容器都拥有服务器的 root 访问权限,因此服务器上一个容器出现的问题可能会影响到其他容器。

让我们回到本文的最初观点——Docker 允许开发人员创建和管理容器。

所以,在我们的比喻中,Docker 服务不是建筑物本身——而是硬件(服务器)和亚马逊网络服务 (AWS)。它也不是某个租用空间的公司——那些就像容器一样。

在这种情况下,Docker 就像是共享办公空间管理公司——它们让您能够以新的方式租用办公空间(或服务器空间)!

有兴趣了解其他类似的教程吗?欢迎访问CodeAnalogies 博客,了解更多常见 Web 开发主题的讲解。

文章来源:https://dev.to/kbk0125/docker-containers-explained-by-renting-office-space-p0o
PREV
外出就餐并了解 Express.js 的基础知识
NEXT
通过高中数学课来理解区块链