OS容器与应用程序容器

ImV*_*0_0 8 containers lxc docker lxd

所以,前几天我在这里阅读OS/System Container vs Application Container .

在那里提到Docker是一个应用程序容器和

运行OS的任何容器都是系统容器.

现在,我很困惑,因为即使在Docker中运行应用程序,你需要有一个可以任何发行版的基本映像.那么,这不应该让Docker成为OS容器技术吗?任何人都可以列出OS与Application Container技术之间的差异吗?

Ant*_*ios 0

这是因为您容器中的应用程序可以在映像所基于的任何操作系统上运行。如果基础映像是 Linux 容器,您可以在任何版本的 Linux 上运行容器。当谈论 Windows 上的容器化时,它会变得更加模糊(因为 Linux 与 Windows 操作系统的架构师)。使用虚拟机时,您需要一辆独轮车来运送您需要的所有东西(操作系统、内核库、杂项库,然后是应用程序及其库)。使用容器,您只需要一个可以轻松携带的桶(从 Linux 的角度来看),因为您只需要一些内核 api 库,然后是您的应用程序及其所需的任何库。无需携带厨房水槽(即操作系统)。所以,是的,容器是一个应用程序容器,因为它包含应用程序,而操作系统容器需要携带操作系统。我希望这个类比能有所帮助。