Docker Toolbox或Docker for Mac对虚拟化解决scheme是否有利?

最初, Docker for Linux利用命名空间cgroup原语在Linux平台上提供容器化解决scheme。 它使用LXC ,后来在runC上监狱docker进程。 虽然他们正在扩大对Mac / Windows上docker的支持,但似乎他们正在采取一种不合理的解决方法,这个解决scheme违背了通过虚拟化进行容器化的全部目的。

Docker Toolbox使用boot2docker Linux(基于Tiny Core的精简版)来托pipeDocker容器。 boot2docker在Oracle Virtualbox上运行。

Docker for Mac在OS X Yosemite的本地虚拟化Hypervisor框架上运行Alpine Linux。 接口是通过构build在xhyve (一个OS X端口的bhyve )之上的Hyperkit实现的。

Windows的Docker运行在Windows 10上的Hyper-V虚拟化框架中。

使用docker(一般来说,容器)相对于传统VM的背后原因是可以忽略的开销和接近本机的性能。 Conainers必须是轻量级的才能有用。

容器如何与虚拟机相比较?

它们是互补的。 虚拟机最好用来分配硬件资源块。 容器在stream程级别运行,这使得它们作为软件交付的一个单元非常轻便和完美。

由于Docker for Mac / Windows都依赖于幕后的一些虚拟化技术,在这些平台上使用Docker还是保留其相关性吗? 不使用虚拟化来模拟集装箱化战胜了切换到Docker架构的全部目的? 正如一个侧面说明,这篇文章也支持我的观点。

由于Docker for Mac / Windows都依赖于幕后的一些虚拟化技术,在这些平台上使用Docker还是保留其相关性吗?

当然。 待这些平台支持完整的本地容器支持后,仍然可以从Docker的主要优势中受益:服务发现,编排(kubernetes / swarm)和监视。

这些服务可以像容器一样容易扩展为独立的虚拟机。

不使用虚拟化来模拟集装箱化战胜了切换到Docker架构的全部目的?

没有,因为没有docker框架,你将只剩下一台虚拟机,你所有的服务都将不得不生存,没有隔离和单独升级的好处。