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

Is a Docker/LXC container a running app or something in-memory?

我刚刚阅读了提出 "What is the difference between Docker and a VM?" 的优秀 SO 问题。然而,接受的答案让我想要多一点。

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

容器只是这个libcontainer运行的一个实例吗?它是一个使用libcontainer的应用程序吗?它是像 Linuxy 一样的 service/daemon 进程吗?所以我问:

the answer still doesn't explain exactly what a "container" is!

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

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

Docker/LXC - I don't get the difference

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

What are the exact computing/system resources multiple containers can share inside the same VM/physical?

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

Is Docker/LXC the "hypervisor" in the container equation?

Linux 内核是真正的 "hypervisor",Docker/LXC 向它发送命令来创建和控制容器。