开发者社区> 问答> 正文

Docker与虚拟机有何不同?

Docker与虚拟机有何不同?

展开
收起
游客5k6m7fein3w74 2021-10-21 14:22:18 471 0
1 条回答
写回答
取消 提交回答
  • Docker不是虚拟化方法。它依赖于实际实现基于容器的虚拟化或操作系统级虚拟化的其他工具。为此,Docker最初使用LXC驱动程序,然后移动到libcontainer现在重命名为runc。Docker主要专注于在应用程序容器内自动部署应用程序。应用程序容器旨在打包和运行单个服务,而系统容器则设计为运行多个进程,如虚拟机。因此,Docker被视为容器化系统上的容器管理或应用程序部署工具。

    (1)与虚拟机不同,容器不需要引导操作系统内核,因此可以在不到一秒的时间内创建容器。此功能使基于容器的虚拟化比其他虚拟化方法更加独特和可取。

    由于基于容器的虚拟化为主机增加了很少或没有开销,因此基于容器的虚拟化具有接近本机的性能

    (2)对于基于容器的虚拟化,与其他虚拟化不同,不需要其他软件。

    主机上的所有容器共享主机的调度程序,从而节省了额外资源的需求。

    (3)与虚拟机映像相比,容器状态(Docker或LXC映像)的大小很小,因此容器映像很容易分发。

    (4)容器中的资源管理是通过cgroup实现的。Cgroups不允许容器消耗比分配给它们更多的资源。虽然主机的所有资源都在虚拟机中可见,但无法使用。

    这可以通过在容器和主机上同时运行top或htop来实现。所有环境的输出看起来都很相似。

    2021-10-21 14:54:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
Docker@Alibaba——超大规模Docker化的实战经验 立即下载