前言
工作需要使用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即可