如果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是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...