在macos下使用homebrew提供的docker(上)

docker为macos提供了默认的安装包,可以直接安装,但如果我们后续要更加细致地定制化docker的服务,那么可以使用homebrew提供的docker相关的安装包。

总的来讲,因为在macOS下不是没有linux内核,所以docker自己的desktop安装版会维护一个虚拟机,然后所有的docker容器都是跑在那个linux虚拟内核里面。下面这篇文章介绍了docker在macos下的实现架构:

可以看到docker在macos的环境下是运行在最下面的Hypervisor这层之上的。Hypervisor提供了一个虚拟的硬件层面,下面是苹果对于这层的介绍可以学习下:

此外,Windows有类似的一层,可以看下介绍:

大概清楚了原理,那么自己定制安装docker的话,我们要安装docker客户端,docker-machine,和virtualbox这三样。

其中virtualbox作为和hypervisor打交道的层面,它用来跑linux虚拟机,虚拟机里面运行的服务是docker的daemon;docker-machine用来管理virtualbox并创建跑docker服务所需要的虚拟机。总结来讲架构如下:

在上面的架构当中,有一个boot2docker.iso,这个是做好的跑docker服务的linux虚拟机的image文件,有兴趣可以看一看这个项目:

根据上面的架构,接下来就是安装具体的软件包。具体的安装在这篇文章里介绍了安装流程:

根据上面的文章中介绍的安装顺序,把homebrew里面相关的packages都安装好。先是安装docker以及docker-machine

$ brew install docker docker-machine

上面的命令会让brew开始安装所需要的两个packages:

下载安装过程需要耐心等待,如果你的电脑上已经安装了docker desktop的版本:

那么需要先关掉这个服务,因为后续我们要用自己的docker服务。此外,在使用brew安装的过程中,可能会出现这样的信息:

这个表明我们安装的docker命令和已有的有冲突。这也是因为电脑里面已经安装了docker desktop版本造成的。安装上面说明给出的命令,强制覆盖一下已有的docker命令即可:

$ brew link --overwrite docker

这样,brew提供的docker命令就安装好了:

安装好上面两个packages以后,接下来是安装virtualbox,下面是安装命令:

$ brew cask install virtualbox

安装过程截图如下:

安装过程到最后,需要输入管理员权限的账号密码。

密码输入完成后,可以看到virtualbox成功安装了:

以上是所需要组件的安装过程,这篇就讲到这里。下一篇当中,讲解这些组件的使用。

Powered by Jekyll and Theme by solid