【问题标题】:Is a Docker/LXC container a running app or something in-memory?Docker/LXC 容器是正在运行的应用程序还是内存中的东西?
【发布时间】:2015-03-20 17:48:59
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: virtual-machine docker lxc


    【解决方案1】:

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

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

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

    Docker/LXC - 我看不出区别

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

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

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

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

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

    【讨论】:

    • 也可以在这里查看我的其他答案stackoverflow.com/questions/28024213/…
    • 感谢@user2915097 (+1) - 确认您在这里所说的内容:Docker 容器是一个 Linux 进程/pid,使用这个 libcontainer 库利用 Linux 内核命名空间和进程隔离?是这样总结的吗?再次感谢!
    • 是的,这张图总结的很好,虚拟机vs docker(在底部)docker.com/whatisdocker
    猜你喜欢
    • 2013-03-24
    • 2011-03-31
    • 2018-01-29
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 2014-09-17
    • 2013-11-29
    相关资源
    最近更新 更多