当前位置: 首页 > 面试题库 >

Docker对lxc-tools(用户空间LXC工具)添加了什么?

穆飞星
2023-03-14
问题内容

如果您看一下Docker的功能,大多数功能已经由LXC提供。

那么Doc​​ker添加了什么呢?为什么要在普通LXC上使用Docker?


问题答案:

从Docker FAQ中:

Docker不能替代lxc。“ lxc”是指linux内核(特别是名称空间和控制组)的功能,这些功能允许彼此进行沙盒处理并控制其资源分配。

在此低级内核功能基础之上,Docker提供了具有多种强大功能的高级工具:

  • 跨机器的可移植部署。 Docker定义了一种格式,用于将应用程序及其所有依赖项捆绑到一个对象中,该对象可以转移到任何启用了docker的计算机上,并在此处执行,并确保暴露给该应用程序的执行环境相同。Lxc实现了流程沙箱,这是便携式部署的重要先决条件,但仅此还不足以实现便携式部署。如果您将安装在自定义lxc配置中的应用程序的副本发送给我,几乎可以肯定它不会像在您的计算机上那样在我的计算机上运行,​​因为它与计算机的特定配置(网络,存储,日志记录,发行版,等等。Docker为这些机器特定的设置定义了一个抽象,以便完全相同的Docker容器可以在许多不同的机器上运行-不变-

  • 以应用程序为中心。 相对于机器,Docker针对 应用程序 的部署进行了优化。这反映在其API,用户界面,设计理念和文档中。相比之下,lxc帮助程序脚本将容器作为轻量级机器集中在容器上-基本上是服务器启动速度更快,所需内存更少。我们认为容器不仅限于此。

  • 自动构建 。Docker提供了一个工具,供开发人员从其源代码自动组装容器,完全控制应用程序依赖项,构建工具,打包等。他们可以免费使用make,maven,chef,puppet,salt,debian软件包,rpm,源代码tarball或以上各项的任意组合, 而与机器的配置无关

  • 版本控制。 多克尔包括混帐样的能力来跟踪集装箱的后续版本,检查版本之间的差异,提交新版本,回滚等历史还包括 如何 容器组装以及由谁,让你获得从生产服务器的完全可追溯一直回到上游开发人员。Docker还实现了增量上传和下载,类似于“ git pull”,因此只能通过发送差异来传输容器的新版本。

  • 组件重复使用。 任何容器都可以用作“基础映像”以创建更多专用组件。这可以手动完成,也可以作为自动构建的一部分来完成。例如,您可以准备理想的python环境,并将其用作10个不同应用程序的基础。您理想的postgresql设置可以在将来的所有项目中重复使用。等等。

  • 分享。 Docker可以访问公共注册表(https://registry.hub.docker.com/),其中成千上万的人上载了有用的容器:从redis,couchdb,postgres到irc bouncers到rails app服务器再到hadoop到基础映像的任何内容各种发行版。该注册表还包括由Docker团队维护的有用容器的官方“标准库”。注册表本身是开源的,因此任何人都可以部署自己的注册表来存储和传输私有容器,例如用于内部服务器部署。

  • 工具生态系统。 Docker定义了一个API,用于自动和自定义容器的创建和部署。有大量工具与docker集成以扩展其功能。类似于PaaS的部署(Dokku,Deis,Flynn),多节点编排(大师,盐,mesos,openstack nova),管理仪表板(docker-ui,openstack Horizo​​n,造船厂),配置管理(chef,puppet),持续集成(jenkins,strider,travis)等。Docker正在迅速将自己确立为基于容器的工具的标准。

我希望这有帮助!



 类似资料:
  • 如果你看看Docker的功能,大部分已经由LXC提供了。 那么Docker添加了什么?我为什么要使用Docker而不是普通的LXC?

  • lxd如何在容器中提供完整的操作系统功能,而不仅仅是单个进程? 它与lxc/docker包装器有何不同? 它是否类似于一个容器,在一个容器中包含多个进程? 换言之: 在lxc和docker上使用一些包装器做不到的lxd可以做什么

  • LXC

    LXC 项目由一个 Linux 内核补丁和一些 userspace 工具组成。这些 userspace 工具使用由补丁增加的内核新特性,提供一套简化的工具来维护容器。 容器可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。本文循序渐进地介绍容器工具 Linux Containers(LXC)。 容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更

  • 我正在ubuntu 14.04上试验lxc。为了管理几个lxc实例,我使用python3lxc。使用pyhthon3 lxc,我确实无法克隆现有容器: 相应地, /var/lib/lxc.vanilla_clone没有根基使用 很好。(python3和lxc克隆,两者都是从sudo开始的。)这是python3_lxc中的一个bug或限制,还是我遗漏了什么? 事后思考:使用lxc。容器create需

  • vagrant-lxc 是一个 Vagrant 工具实现对 LXC 支持的项目。 特性限制 提供跟 Vagrant VirtualBox Provider 相同的工作流 通过 redir 进行端口重定向 不支持公有和私有网络 Assumes you have a lxcbr0 bridge configured on your host similar to Ubuntu's built-in 要

  • LXC Web Panel 是基于 Web 的 LXC 图形化配置。