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

翻譯自:https://blog.codecentric.de/en/2014/08/docker-dock-development-environment/mysql

你可能遇到這樣的場景:開發軟件時,像數據庫和消息系統(messaging system)等其它服務也必須起起來。一般這些服務可能安裝在開發者本人的機器上或者運行在虛擬機裏。而最近圍繞Docker的活動證實,它是一個有趣的可替代方案。使用Docker和一個叫dock的小工具,你能夠短期內啓動全部開發環境所須要的服務。git

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

介紹

想象一下,你想快速開發一個原型,同時須要一個MongoDB運行在本地。使用dock,啓動這個服務是垂手可得。只要輸入dock mongodb,就行了。或者輸入dock redis來啓動Redis如何?dock使程序員樂於簡單而快速的啓動各類隔離的服務。你也能夠執行像如下列表這樣更多,更復雜的步驟:github

$ 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.redis

dock容許你在不一樣的規則之間遷移。你能夠在運行dock時加上—cat參數來打印規則的詳細信息。這些信息包括dock執行了哪些Docker命令。經過些信息學習Docker或者做爲你能力的提升點。sql

安裝

dock託管在GitHub上,是一個shell腳本。安裝很簡單,只須要下載腳本,而後將它加入到你的$PATH路徑下。OS X用戶可經過Homebrew安裝,固然,你首先要安裝Dockermongodb

# 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來幫助。docker

相關文章
相關標籤/搜索