我在我的 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 [Desktop] for Mac”确实运行 Linux 主机 VM 并替换了 boot2docker - LinuxKit 由 Docker 开发和维护,目的是制作轻量级发行版。
https://blog.docker.com/2017/04/introducing-linuxkit-container-os-toolkit/
您看到的 uname 没有关键字,但现在似乎包含在内,例如从 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
,
对于新的日子,它只是
供应是在内部完成的
“Docker [Desktop] for Mac”
而VirtualBox被Apple的Hyperkit取代
,
并且“默认虚拟机”更隐蔽
。
关于linux - Docker 如何在 macOS 主机下运行 Linux 内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43383276/