Docker如何在macOS主机下运行Linux内核?

我按照如下方式在我的macOS Sierra上安装了Docker。 注意我没有安装VirtualBox。

brew cask uninstall virtualbox brew cask install docker 

我的macOS细节。

 $ uname -a Darwin m-C02QG7TRG8WN.local 16.5.0 Darwin Kernel Version 16.5.0: Fri Mar 3 16:52:33 PST 2017; root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64 $ docker version Client: Version: 17.03.1-ce API version: 1.27 Go version: go1.7.5 Git commit: c6d412e Built: Tue Mar 28 00:40:02 2017 OS/Arch: darwin/amd64 Server: Version: 17.03.1-ce API version: 1.27 (minimum version 1.12) Go version: go1.7.5 Git commit: c6d412e Built: Fri Mar 24 00:00:50 2017 OS/Arch: linux/amd64 Experimental: true 

一旦我从启动板运行Docker,我就可以运行Docker容器。

 $ docker run -it ubuntu root@2351d4222a4e:/# uname -a Linux 2351d4222a4e 4.9.13-moby #1 SMP Sat Mar 25 02:48:44 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 

我的问题是Docker如何pipe理在macOS中运行Linux内核? 我认为Docker至less需要boot2docker或者其他一些这样的Linux内核才能运行,以便能够借助它来创buildUbuntu的文件系统。 但是上面的输出似乎表明不是这样的。 Linux内核从哪里来?

早期版本的Docker使用VirtualBox为Docker运行虚拟机。 自2016年6月以来,在Mac和Windows上运行Docker的方式变得越来越简单, 在Mac / Windows上有Docker官方发布介绍博客 ,还有一些来自Docker Mac 网站的介绍:

Docker for Mac是一个与MacOS Hypervisor框架,网络和文件系统深度整合的完整开发环境。

与结构看起来像:

在这里输入图像描述

Docker使用苹果的Hypervisor框架: https : //developer.apple.com/reference/ hypervisor

Docker博客上的更多内容在去年推出: https : //blog.docker.com/2016/05/docker-unikernels-open-source/