美文网首页
docker 与 LXC、虚拟机小记

docker 与 LXC、虚拟机小记

作者: 小码弟 | 来源:发表于2019-02-07 12:11 被阅读0次

    1. docker 在 LXC 基础上的改进

    docker 在 内核容器技术(Cgroup 和 Namespace)的基础上,提供了一个更高层的控制工具,该工具包含以下特性:

    • 跨主机部署。docker 定义了镜像格式,使同一个镜像文件在任何可运行 docker 的机器中运行。LXC 实现了“沙箱机制”,但对于容器技术是完全不够的,因为沙箱只把应用程序打包到另一个 LXC 环境,但程序的执行依赖于机器的特定配置。而 docker 则将上述配置进行抽象,与应用程序异一同打包。
    • 以应用为中心。Dockerfile 机制简化了应用的部署方法
    • 自动构建。
    • 版本管理。提供类似于 Git 的版本管理功能。
    • 组件重用。这得益于 docker 在镜像分层上的创新。
    • 共享。 registry
    • 工具生态链。 集成包括 类 PaaS部署工具(Dokku、Deis 和 Flynn)、多节点编排工具(Maestro、 Salt、Mesos、OpenStack nova)、管理面板(OpenStack horizon)、配置管理工具(Puppet)、持续集成工具(Jenkins、travis)。

    2. docker 容器与虚拟机有什么不同

    容器与虚拟机是互补的。
    虚拟机是用来进行硬件资源划分的完美解决方案,它利用硬件虚拟化技术,例如VT-x、AMD-V同时通过一个 hypervisor 层实现对资源的彻底隔离;而容器则是操作系统级别的虚拟化,利用的是内核的 Cgroup 和 Namespace 特性,此功能完全通过软件实现,仅仅是进程本身就尅与其他进程隔离开。
    Docker 容器与主机共享操作系统内核,不同容器之间可以共享部分系统资源(PID, MNT),因此容器更加轻量级。而虚拟机会独占分配给自己的资源,几乎不存在资源共享,各个虚拟机实例之间几乎完全隔离,每个虚拟机实例都占用一个完整的操作系统所需的所有资源。
    因此,如果需要完全隔离系统资源并不考虑资源消耗,选择使用虚拟机;若想隔离进程并且运行大量进程实例,则应选择 Docker 容器。

    相关文章

      网友评论

          本文标题:docker 与 LXC、虚拟机小记

          本文链接:https://www.haomeiwen.com/subject/liiwsqtx.html