Docker簡易版:使用更少擊鍵執行Redis,MongoDB

青衫無名發表於2017-06-02

你可能遇到這樣的場景:開發軟體時,像資料庫和訊息系統(messaging system)等其它服務也必須起起來。通常這些服務可能安裝在開發者本人的機器上或者執行在虛擬機器裡。而最近圍繞Docker的活動證明,它是一個有趣的可替代方案。使用Docker和一個叫dock的小工具,你可以短時間內啟動所有開發環境所需要的服務。

你不知道Docker是什麼?沒問題。使用dock,你不需要真正瞭解Docker。你只需要安裝好Docker。我同事Lukas Pustina寫了一篇部落格更詳細的介紹Docker。

介紹

想象一下,你想快速開發一個原型,同時需要一個MongoDB執行在本地。使用dock,啟動這個服務是輕而易舉。只要輸入dock mongodb,就好了。或者輸入dock redis來啟動Redis如何?dock使程式設計師樂於簡單而快速的啟動各種隔離的服務。你也可以執行像以下列表這樣更多,更復雜的步驟:

$ dock redis jenkins sonar

    Starting redis (using /Users/ben/.dock-formulas/formulas/redis)
    Container started
    Name:       redis
    IP:         192.168.59.103
    Ports:      6379

    Starting jenkins (using /Users/ben/.dock-formulas/formulas/jenkins)
    Container started
    Name:       jenkins
    IP:         192.168.59.103
    Ports:      8472

    Starting sonar (using /Users/ben/.dock-formulas/formulas/sonar)
    Container started
    Name:       sonar-mysql
    IP:         192.168.59.103
    Ports:      3306
    Container started
    Name:       sonar-server
    IP:         192.168.59.103
    Ports:      8474

dock底層使用的是Docker。Docker本身是很強大的,dock使其變得更通用。dock加入了一個規則機制(formula mechanism),目標是開發者需要的本地開發環境。如果沒有這個規則機制,你必須知道如何啟動容器,使用哪個映象,開放哪些埠。dock致力於讓開發者只需要知道服務的名字。規則在GitHub上維護,通過pull request,其他開發者可以自行擴充套件。如果你需要的服務不包含在內,請發pull request或issue.

dock允許你在不同的規則之間遷移。你可以在執行dock時加上—cat引數來列印規則的詳細資訊。這些資訊包括dock執行了哪些Docker命令。通過些資訊學習Docker或者作為你能力的提高點。

安裝

dock託管在GitHub上,是一個shell指令碼。安裝很簡單,只需要下載指令碼,然後將它加入到你的$PATH路徑下。OS X使用者可通過Homebrew安裝,當然,你首先要安裝Docker。

# as an OS X user with Homebrew
    brew tap bripkens/dock
    brew install dock  
    # for other platforms (assuming ~/bin is on your $PATH)
    curl https://raw.githubusercontent.com/bripkens/dock/master/dock -so ~/bin/dock && 
         chmod +x ~/bin/dock && 
         dock -u && 
         echo "dock installation successful. Try running `dock’"

總結

Docker有很大潛力,而dock讓它更易於使用。dock對你進行原型設計或學習新技術時很有幫助,當然,你也可以將它作為日常的基礎設施。目前dock支援的服務還很少,但是它很容易擴充套件。告訴我你需要的任何服,或者發pull request來幫助。


相關文章