当前位置: 首页 > 知识库问答 >
问题:

为什么docker虚拟化比VM快[重复]

艾嘉石
2023-03-14

根据我的理解,VM使用硬件虚拟化,而Docker使用软件虚拟化,因此具有更好的性能(例如,我在Windows机器上运行一个Dockerized Linux)。但究竟是什么原因让OS虚拟化比硬件虚拟化更快呢?

共有1个答案

孔俊捷
2023-03-14

Docker不做虚拟化。它使用内核名称空间来实现类似chroot的效果,不仅用于根文件系统,还用于进程信息(PID名称空间)、挂载点、网络、IPC(共享内存)、UTS信息(主机名)和用户ID。

容器与主机共享内核。对于安全性,Docker使用apparmor/selinux、Linux功能和seccomp来过滤系统调用。控制组(称为cgroups)用于过程核算和对资源施加限制。

 类似资料:
  • 我知道如果在vanilla js中更改DOM,整个浏览器每次都会进行中继输出和重新绘制。 这是vanillajs测试代码 这是react测试代码 基准结果站点js-framework-benchmark result 和githubsite js-framework-benchmark github

  • Docker 常用命令 docker pull redis #拉取镜像,默认 latest 版本 docker pull mysql:8.0 #拉取指定版本镜像 docker images #查看镜像 docker image ls #查看镜像 docker image ls -f dangling=true #查看虚悬镜像 docker image prune #删除虚悬镜像 doc

  • 稳定性: 2 - 稳定的 vm 模块提供了一系列 API 用于在 V8 虚拟机环境中编译和运行代码。 它可以通过以下方式使用: const vm = require('vm'); JavaScript 代码可以被编译并立即运行,或编译、保存然后再运行。 Note: The vm module is not a security mechanism. Do not use it to run un

  • 我使用以以下命令开头mysql映像 当docker在后台运行时,另一个应用程序连接到端口3306大约需要一分钟的时间。 之后,我用停止这个容器,然后用启动它。在第二种情况下,使用start命令,应用程序可以连接到端口3306,仅在5秒后。 现在我用从停止的容器中获取快照,并用运行它,但是在这种情况下,应用程序可以在一分钟后连接到mysql2! 所以, 是否有任何方法在运行容器后采取快照,可以在10

  • 我明白了VM和容器之间的巨大区别。但这让我对Ubuntu容器如何存在感到困惑。这对我来说很矛盾,因为Ubuntu是一个操作系统。 https://hub.docker.com/_/ubuntu 这不是一个完整的来宾OS吗?那么是什么使它成为VM上的容器呢?还是容器和VM之间的界限模糊了? 我试着在谷歌上搜索这个,但我找到的结果只是经典的VM vs容器的答案,这不是我真正想问的,我不认为。 编辑-我

  • 问题内容: 示例代码在这里 问题答案: 我认为速度更快,因为使用矢量化方式和熊猫构建在此数组上。 慢,因为它使用。 操作是最快的,然后是。 请参阅此答案,并更好地解释pandas开发人员。