我在 macOS Sierra 上安装了 Docker,如下所示。
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
一旦我从 launchpad 运行 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 内核从何而来呢?