使用Dinghy在你的Mac上構建Docker host

前言

工作需要使用Docker,我們團隊中使用過boot2dockerDocker Toolbox,并且短暫的接觸過最新的Docker for Mac
現狀是:boot2docker已被官方標記為deprecated;Docker Toolbox捆綁VirtualBox;Docker for Mac抽風概率大(這個限于我們使用的時候)
因此,目前我們團隊選擇使用Dinghy,本文是我安裝Dinghy的一篇總結帖,會先羅列安裝的過程,之后講一下我踩的坑
另外,如果文中有錯誤或沒有講明白的地方可以留言評論我會盡量更正,當然如果是能指出問題的話更加感謝

介紹

Dinghy是一套比較完善的適用于Mac系統下搭建Docker host的工具,致力于打造友好的Docker本地開發環境

Dinghy的優點:

  • 不僅可以使用VirtualBox,Dinghy目前支持的虛擬機軟件包括:VirtualBoxVMware FusionxhyveParallels
  • 使用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
創建之前,有必要了解以下虛擬機創建參數


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)時報錯

Error.png

關于Error checking TLS connection: Error checking and/or regenerating the certs的討論有很多,但這并不是我們需要的。。。
解決辦法:關閉所有虛擬機,退出VirtualBox,關閉所有termianl窗口。然后重新開啟termianl,在開啟default或dinghy即可

2、NFS failed to run

NFS failed to run.png

這個問題都會生成錯誤日志,截圖中有說明位置。比如我遇到的問題日志如下:
unfsd error.png

解決方式:終端執行brew link unfs3,之后重啟Dinghy即可

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容