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如何管理在macOS中运行Linux内核? 我认为Docker至少需要boot2docker或其他一些这样的Linux内核才能运行,以便它可以在其帮助下创建Ubuntu的文件系统。 但是上面的输出似乎表明事实并非如此。 Linux内核从哪里来?


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

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

结构如下所示:

在这里输入图像描述


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

去年Docker博客更多阅读时间:https://blog.docker.com/2016/05/docker-unikernels-open-source/

链接地址: http://www.djcxy.com/p/39147.html

上一篇: How does Docker run a Linux kernel under macOS host?

下一篇: xi:include in xml file within jar file does not work in WildFly