如果docker使用虚拟机在Mac上运行,那么它比流浪汉有什么优势?

前端之家收集整理的这篇文章主要介绍了如果docker使用虚拟机在Mac上运行,那么它比流浪汉有什么优势? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

因此,我在许多地方都读到了Docker更快,更高效的原因,因为它使用了基于VM的容器,但是当我在Mac上下载docker时,我意识到它使用虚拟盒来运行容器.我相信在Linux机器上,docker不需要虚拟盒子,可以在Linux内核上运行.这个对吗 ?

回到原始问题. docker是否仍会更快/更高效,因为它针对每个环境使用了一个VM来运行多个容器,而不是Vargrant的新VM?

最佳答案

I believe on a linux machine docker doesn’t need virtual Box and can run on Linux Kernel. Is this correct ?

是的,因此需要VirtualBox Linux VM(使用TinyCore发行版)

Is docker still faster/efficient because it uses a single VM to run multiple containers as opposed to Vargrant’s new VM for every environment ?

是的,因为缺少用于模拟硬件和操作系统的Hypervisor:在这里,您可以直接使用内核(通过direct system calls)来启动多个容器,而无需模拟操作系统.
(注意:2018年5月,另一个选项gVisor:一个容器,用于模拟OS!)

vm vs container

参见“ How is Docker different from a normal virtual machine?”.

当然,请记住该Vagrant can use a docker provider.
这意味着您不必总是为完整的VM配备Vagrant,而是映像和容器.

Vagrant.configure("2") do |config|
  config.vm.provider "docker" do |d|
    d.image = "foo/bar"
  end
end

参见Vagrant docker provisioner.

猜你在找的Docker相关文章