前言
工作需要使用Docker,我们团队中使用过boot2docker及Docker Toolbox,并且短暂的接触过最新的Docker for Mac
现状是:boot2docker已被官方标记为deprecated;Docker Toolbox捆绑VirtualBox;Docker for Mac抽风概率大(这个限于我们使用的时候)
因此,目前我们团队选择使用Dinghy,本文是我安装Dinghy的一篇总结帖,会先罗列安装的过程,之后讲一下我踩的坑
另外,如果文中有错误或没有讲明白的地方可以留言评论我会尽量更正,当然如果是能指出问题的话更加感谢
介绍
Dinghy是一套比较完善的适用于Mac系统下搭建Docker host的工具,致力于打造友好的Docker本地开发环境
Dinghy的优点:
- 不仅可以使用VirtualBox,Dinghy目前支持的虚拟机软件包括:VirtualBox,VMware Fusion,xhyve ,Parallels
- 使用NFS而非Virtual等虚拟机软件自带的文件系统进行文件共享,速度更快而且配置方便
对于我个人来说,最直观的感受莫过于NFS相对于VirtualBox虚拟机自带的文件共享方式而言极小的资源消耗率,具体的数据没有测试,这里只能给出一点直观感受:在8G内存MBP下,使用Docker Toolbox自带的一套虚拟机系统(即使用VirtualBox自带文件共享方式)时,每次编译Golang程序会发现CPU和内存占用飙满,VirtualBox的运行状态界面显示此时最大资源消耗用于文件夹共享;使用Dinghy后,编译程序时CPU和内存一般能维持在50%左右
如果你现在正在使用Docker Toolbox,完全可以无伤转移,Dinghy会利用Docker Machine在你的虚拟机软件中创建一个名为dinghy的虚拟机而完全不会影响你当前所有的其他虚拟机
安装
强烈推荐使用Homebrew安装所需内容
1、安装Dinghy
brew tap codekitchen/dinghy
brew install dinghy
2、安装Docker及Docker Machine
brew install docker docker-machine
3、创建虚拟机,我使用的仍然是VirtualBox
创建之前,有必要了解以下虚拟机创建参数
假设你希望指定虚拟机软件为VirtualBox,其他参数默认
dinghy create --provider virtualbox
4、设置共享文件目录
Dinghy支持自定义共享文件目录,只需将
export DINGHY_HOST_MOUNT_DIR=/Users
export DINGHY_GUEST_MOUNT_DIR=/Users
写入~/.bash_profile
即可,其中的/Users
可替换为你喜欢的目录
题外话,改完~/.bash_profile
记得source ~/.bash_profile
5、验证安装
执行完前面3步后,打开VirtualBox应该能看到运行中的Dinghy
回到终端,验证安装
docker run hello-world
6、Dinghy基本操作
总结
Dinghy安装完成后,就可以像使用Docker Toolbox自带的default虚拟机一样来使用了
下面说一下踩到的坑
1、VirtualBox内虚拟机地址变化问题
我的VirtualBox内有两台虚拟机:default和dinghy。先启动default时,虚拟机地址为192.168.99.100,然后关闭default,再启动dinghy,发现d虚拟机地址为192.168.99.101,这导致了在eval $(dinghy env)
时报错
关于Error checking TLS connection: Error checking and/or regenerating the certs的讨论有很多,但这并不是我们需要的。。。
解决办法:关闭所有虚拟机,退出VirtualBox,关闭所有termianl窗口。然后重新开启termianl,在开启default或dinghy即可
2、NFS failed to run
这个问题都会生成错误日志,截图中有说明位置。比如我遇到的问题日志如下:
解决方式:终端执行
brew link unfs3
,之后重启Dinghy即可