前言
介绍
Dinghy是一套比较完善的适用于Mac系统下搭建Docker host的工具,致力于打造友好的Docker本地开发环境
Dinghy的优点:
- 不仅可以使用VirtualBox,Dinghy目前支持的虚拟机软件包括:,, ,
- 使用NFS而非Virtual等虚拟机软件自带的文件系统进行文件共享,速度更快而且配置方便
对于我个人来说,最直观的感受莫过于NFS相对于VirtualBox虚拟机自带的文件共享方式而言极小的资源消耗率,具体的数据没有测试,这里只能给出一点直观感受:在8G内存MBP下,使用Docker Toolbox自带的一套虚拟机系统(即使用VirtualBox自带文件共享方式)时,每次编译Golang程序会发现CPU和内存占用飙满,VirtualBox的运行状态界面显示此时最大资源消耗用于文件夹共享;使用Dinghy后,编译程序时CPU和内存一般能维持在50%左右
如果你现在正在使用Docker Toolbox,完全可以无伤转移,Dinghy会利用Docker Machine在你的虚拟机软件中创建一个名为dinghy的虚拟机而完全不会影响你当前所有的其他虚拟机
安装
brew tap codekitchen/dinghy
brew install dinghy
2、安装Docker及Docker Machine
brew install docker docker-machine
3、创建虚拟机,我使用的仍然是VirtualBox
创建之前,有必要了解以下虚拟机创建参数
create参数说明.png
假设你希望指定虚拟机软件为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
VirtualBox截图.png
回到终端,验证安装
docker run hello-world
docker helloworld.png
6、Dinghy基本操作
Dinghy基本操作.png
总结
Dinghy安装完成后,就可以像使用Docker Toolbox自带的default虚拟机一样来使用了
下面说一下踩到的坑
1、VirtualBox内虚拟机地址变化问题
我的VirtualBox内有两台虚拟机:default和dinghy。先启动default时,虚拟机地址为192.168.99.100,然后关闭default,再启动dinghy,发现d虚拟机地址为192.168.99.101,这导致了在eval $(dinghy env)
时报错
关于的讨论有很多,但这并不是我们需要的。。。
解决办法:关闭所有虚拟机,退出VirtualBox,关闭所有termianl窗口。然后重新开启termianl,在开启default或dinghy即可
2、NFS failed to run
这个问题都会生成错误日志,截图中有说明位置。比如我遇到的问题日志如下:
unfsd error.png
解决方式:终端执行
brew link unfs3
,之后重启Dinghy即可