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

sme*_*eeb 5 virtual-machine lxc docker

我刚刚阅读了优秀的 SO 问题,询问Docker 和 VM 之间有什么区别?。然而,接受的答案让我只想要一点点。

有点理解容器(Docker / LXC - 我不明白区别)使用称为libcontainer和 AuFS 的东西,以便数十、数百甚至数千个容器可以共享相同的 CPU、RAM 和磁盘资源。但是,答案仍然没有准确解释“容器”是什么!

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

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

use*_*097 5

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

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

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

Docker/LXC - 我不明白

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

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

同一台机器上的容器将共享 CPU、内存和内核。此外,Docker 允许您选择让它们共享同一个网络。

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

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