Docker是如何轻量级的

我正在读docker。 我了解到,该平台通过将依赖关系和软件结合在一起,有助于消除不同软件生命周期之间的依赖关系。

在docker的网站上写道,它的重量轻,我没有得到这一点,因为它具有与它一起打包的所有依赖关系时如何可以轻量级?

如果我的系统中有多个容器使用相同的依赖关系,也就是说我们在所有的容器中都使用相同的外部库,那么对于所有的容器来说,这个依赖性会被一次又一次的安装吗?

我是Docker的新手,因此任何帮助对我来说都是很棒的。

docker工人与虚拟机相比有时被描述为“轻量级”,因为它:

  • 不会为每个VM启动单独的操作系统,因此启动/停止的速度更快
  • 在大多数情况下,由于在图像之间共享公用图层,所需的磁盘空间更less
  • 同样由于图像分层,新应用程序版本的增量部署更小,因此比虚拟机更快
  • 在容器之间共享内核,因此使用更less的内存

当然这在很大程度上是市场营销的话语,“轻量级”既不技术也不具体。 拿一粒盐。

如果我的系统中有多个容器使用相同的依赖关系,也就是说我们在所有的容器中都使用相同的外部库,那么对于所有的容器来说,这个依赖性会被一次又一次的安装吗?

如果您正确执行此操作,则多个容器将共享一个公共基础层,因此不会占用占用磁盘空间的这些外部库的多个副本。

我还有一个问题,如果我有一些微服务,那么每个微服务将采取一个容器?

是的,一般来说,每个容器都有一个主stream程,微服务是一个独立的stream程。