2015年3月15日 星期日

[Docker][教學] 使用Vagrant建立PostgreSQL環境(下)

        經歷過先前多次失敗,聽大大建議果斷放棄boot2docker,改用VM模擬一個Ubuntu來當作docker的執行環境,並且使用Vagrant來管理VM.Vagrant並不是一個真正的VM運行平台,而是一套方便管理VM的工具,可以透過Vagrant來簡化VM設定的流程(特別是要開很多個VM的時候),Vagrant實際上是使用virtual Box來運行VM.

        因為Vagrant安裝相關的介紹很多也很清楚(請參考https://github.com/astaxie/Go-in-Action/blob/master/ebook/zh/01.1.mdhttp://www.slideshare.net/ihower/vagrant-osdc)所以安裝部分就不多談.

        安裝好Vagrant後,先開設一個資料夾,接著可以透過 vagrant init來初始化VM的環境.你會在這料夾中看到Vagrantfile這個檔案,這也是這個VM的設定檔.但是和一般VM不同,Vagrant可以透過不同的Vagrantfile檔案管理不同的VM,每個環境彼此的設定都是獨立的(Vagrantfile要放在不同資料夾).

接著我們編輯這個檔案


  • 前兩行註解是一定要加的
  • VARGENTFILE_API_VERSION:使用的API版本,目前都用"2"
  • config.vm.box:作業系統,目前有很多可以選.(更多系統
  • config.vm.synced_folder:同步的資料夾,前者是本機(就是你目前使用的環境),後者是VM(VM資料夾要使用絕對路徑).
  • config.vm.provision:Vagrant在啟動vm時自動幫你安裝的軟體或環境設定,這邊也可以指向shell script.
  • config.vm.network:使用迴圈的方式將VM的port與本機的port對接
  • 更多設定請參考:https://docs.vagrantup.com/v2/
設定好之後我們就可以用vagrant up啟動他了(你在這個資料夾做的指令,只會影響到這個單一的VM,並不會影響到放在其他資料夾的設定檔):

中間省略

這樣就表示VM已經啟動了,but這時候你還只是在本機,還沒有進到VM.請透過vagrant ssh方式連線進主機:

就像真的連進一台主機裡是吧!
而且他也幫你把docker 裝好了:
這時候只要把postgresql拉下來,執行就可以囉(詳細步驟請參考[Docker][教學] 使用Vagrant建立PostgreSQL環境(上)),而且執行起來一點問題都沒有:
是否方便XD 自此以後可以快樂拋棄boot2docker了


沒有留言:

張貼留言