gpt4 book ai didi

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

转载 作者:bug小助手 更新时间:2023-10-28 01:28:42 34 4
gpt4 key购买 nike

如果你看看 Docker 的特性,大部分都已经由 LXC 提供了。

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

最佳答案

来自 Docker FAQ :

Docker 不是 lxc 的替代品。 “lxc”指的是 linux 内核的功能(特别是命名空间和控制组),它允许相互之间进行沙盒处理,并控制它们的资源分配。

在内核功能的这个底层基础之上,Docker 提供了一个具有几个强大功能的高级工具:

  • 跨机器的可移植部署。 Docker 定义了一种格式,用于将应用程序及其所有依赖项捆绑到一个对象中,该对象可以传输到任何支持 docker 的机器上,并在那里执行,并保证暴露给应用程序的执行环境相同。 Lxc 实现了进程沙箱,这是可移植部署的重要先决条件,但对于可移植部署而言,仅此是不够的。如果您给我发送了一份安装在自定义 lxc 配置中的应用程序副本,它几乎肯定不会像在您的机器上那样在我的机器上运行,因为它与您机器的特定配置相关联:网络、存储、日志记录、发行版,等等。Docker 为这些特定于机器的设置定义了一个抽象,以便完全相同的 docker 容器可以在许多不同的机器上运行 - 不变 - 具有许多不同的配置。
  • 以应用为中心。 Docker 针对应用程序的部署进行了优化,而不是机器。这反射(reflect)在其 API、用户界面、设计理念和文档中。相比之下,lxc 帮助程序脚本将容器作为轻量级机器——基本上是启动速度更快且需要更少内存的服务器。我们认为容器不仅仅如此。
  • 自动构建。 Docker 包括一个工具,供开发人员从源代码​​自动组装容器,完全控制应用程序依赖项、构建工具、打包等。他们可以免费使用 make、maven、chef、puppet、salt、debian 包、rpms、源代码tarball 或上述任何组合,无论机器的配置如何。
  • 版本控制。 Docker 包括类似 git 的功能,用于跟踪容器的连续版本、检查版本之间的差异、提交新版本、回滚等。历史还包括容器是如何组装的以及由谁组装,因此您可以从生产服务器获得完整的可追溯性一路回到上游开发商。 Docker 还实现了增量上传和下载,类似于“git pull”,因此可以仅通过发送差异来传输容器的新版本。
  • 组件重用。任何容器都可以用作“基础镜像”来创建更专业的组件。这可以手动完成,也可以作为自动构建的一部分完成。例如,您可以准备理想的 Python 环境,并将其用作 10 个不同应用程序的基础。您理想的 postgresql 设置可以重新用于您 future 的所有项目。等等。
  • 分享。 Docker 可以访问公共(public)注册表 (https://registry.hub.docker.com/),在那里成千上万的人上传了有用的容器:从 redis、couchdb、postgres 到 irc 保镖、rails 应用服务器、hadoop 到各种发行版的基础镜像。该注册表还包括一个由 docker 团队维护的有用容器的官方“标准库”。注册表本身是开源的,因此任何人都可以部署自己的注册表来存储和传输私有(private)容器,例如用于内部服务器部署。
  • 工具生态系统。 Docker 定义了一个 API,用于自动化和自定义容器的创建和部署。有大量工具与 docker 集成以扩展其功能。类 PaaS 部署(Dokku、Deis、Flynn)、多节点编排(maestro、salt、mesos、openstack nova)、管理仪表板(docker-ui、openstack horizo​​n、shipyard)、配置管理(chef、puppet)、持续集成(jenkins、strider、travis)等。Docker 正在迅速将自己确立为基于容器的工具的标准。

  • 我希望这有帮助!

    关于docker - Docker 向 lxc-tools(用户空间 LXC 工具)添加了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17989306/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com