一尘不染

Docker / LXC容器是正在运行的应用程序还是内存中的东西?

docker

我刚刚读了一个非常好的SO问题,询问“Docker和VM之间有什么区别?”。但是,被接受的答案让我只想要一点点。

有点 理解一个容器(Docker/LXC-我没什么不同),使用一种叫做libcontainerAuFS的东西,以便数十,数百甚至数千个容器可以共享相同的CPU,RAM和磁盘资源。但是,答案仍然不能
完全 解释什么是“容器”!

容器只是这种libcontainer运行的一个实例吗?它是使用的应用程序libcontainer吗?Linuxy有点像服务/守护进程吗?所以我问:

  • 什么 究竟 是一个“容器”?
  • 多个容器可以在同一虚拟机/物理设备中共享的 确切 计算/系统资源是什么?
  • Docker / LXC是容器方程式中的“管理程序”吗?如果不是,那么Doc​​ker,LXC和之间是什么关系libcontainer

阅读 364

收藏
2020-06-17

共1个答案

一尘不染

答案仍然不能完全解释什么是“容器”!

容器基本上是一个独立的过程,具有其工作所需的所有环境(Web服务器,数据库,CMS,任何软件…)。

容器使用Linux内核名称空间来隔离进程,网络和文件系统。容器使用进程隔离的概念:文件系统,进程,网络,资源(CPU,内存),日志记录(STDIN
…),外壳隔离。

Docker / LXC-我没什么不同

LXC是一组用于控制容器的工具;Docker是另一套工具(所有工具都捆绑在同一个程序中),它还添加了一种文件格式,因此“图像”的内容可以在计算机之间传递。Docker比LXC更受关注。Docker曾经使用lxc库来控制容器,但用自己的名为libcontainer的库代替了它。

多个容器可以在同一虚拟机/物理设备中共享的确切计算/系统资源是什么?

同一台计算机上的容器将共享CPU,内存和内核。此外,Docker使您可以选择让它们共享同一网络。

Docker / LXC是容器方程式中的“管理程序”吗?

Linux内核是真正的“管理程序”,并且Docker / LXC向其发送命令以创建和控制容器。

2020-06-17