我在读有关docker的文章。我了解到,该平台通过将依赖项和软件组合在一起,有助于消除不同软件生命周期之间的依赖项。
在docker网站上,它写得很轻,我没有明白这一点,因为当它打包了所有依赖项时,它又如何重量很轻?
如果我的系统中有多个使用相同依赖项的容器,即说我们在所有容器中使用相同的外部库,那么是否会为所有容器一次又一次地安装该依赖项?
我是Docker的新手,因此任何帮助对我来说都是很棒的。
与虚拟机相比,有时将docker描述为“轻量级”,因为它:
不会为每个VM引导单独的操作系统,因此启动/停止速度更快
在大多数情况下,由于跨映像共享公共层,因此需要较少的磁盘空间
同样,由于图像分层,新应用程序版本的增量部署较小,因此比VM更快
跨容器共享内核,因此使用更少的内存
当然,这在很大程度上是市场营销的说法,“轻量化”既不是技术性的也不是具体的。撒一粒盐。
如果我的系统中有多个使用相同依赖项的容器,即说我们在所有容器中使用相同的外部库,那么是否会为所有容器一次又一次地安装该依赖项?
如果正确执行,则多个容器将共享一个公共基础层,因此不会有这些外部库的多个副本占用磁盘空间。
我还有一个问题,如果我有很多微服务,那么每个微服务都会带一个容器吗?
是的,通常每个容器只有一个主进程,而微服务是一个独立的进程。