次のように、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 website からの紹介もあります:
Docker for Macは、MacOS Hypervisorフレームワーク、ネットワーク、およびファイルシステムと緊密に統合された完全な開発環境です。
そして、構造は次のようになります。
ハイパーバイザーに関する他の回答は正しいものの、特定の質問には答えません。
答えは、「Docker [デスクトップ] for Mac」はLinuxホストを実行しますVM boot2dockerの代わりに-LinuxKit軽量ディストリビューションを作成する目的でDockerによって開発および保守されています。
https://blog.docker.com/2017/04/introducing-linuxkit-container-os-toolkit/
あなたが見たウナメにはキーワードがありませんでしたが、今では含まれているようです、例えばDocker for Mac 18.03.1から:
Linux a8e079429a51 4.9.87-linuxkit-aufs #1 SMP Wed Mar 14 15:12:16 UTC 2018 x86_64 Linux
リリースページに含まれているバージョンへのリンクを確認できます。 https://docs.docker.com/docker-for-mac/release-notes/
したがって、古いDocker Machine + VirtualBox + boot2dockerの時代とそれほど違いはありません。プロビジョニングは「MacのDocker [デスクトップ]」で内部的に行われ、VirtualBoxはAppleのHyperkitに置き換えられ、「デフォルトVM」はもう少し隠れています。
DockerはAppleのHypervisor Frameworkを使用しています: https://developer.Apple.com/reference/hypervisor
昨年発表されたDockerブログの詳細: https://blog.docker.com/2016/05/docker-unikernels-open-source/