Vagrant中搭建Docker虛擬環境(上)-Mac

         Vagrant提供了可配置、可複用的虛擬開發和部署環境,對於開發人員來說,Vagrant可以幫你統一團隊成員的開發環境。也可以提供一套一致的線上線下環境。vagrant 在mac上通過命令行工具可以管理統一的鏡像(BOX)所以vagrant還需要依賴VirtualBox等提供系統(支持linux,windows,OS X等)環境。這篇文章主要介紹下個人在mac上的配置過程。後面一篇會介紹vagrant上搭建docker(一種輕量級的LinuxContainer),讓docker更加輕量級得管理我們統一的虛擬環境。

一、搭建vagrant

    1、下載

       vagrant官網https://www.vagrantup.com/ download 一路安裝下去。裝好之後需要安裝VirtualBox。也是一路下一步安裝。VirtualBox 裝好之後就可以啓動虛擬環境了。然後我們就可以用vagrant 來管理虛擬環境。

    2、初始化vagrant 環境

       創建一個vagrant管理目錄,來存放和管理所有的虛擬環境。創建一個運行vagrant init 命令來初始化環境。這時候會生成一個Vagrantfile。過程如下: 


    3、創建鏡像(box)

       只通過上述步驟,然後用vagrant up命令會提示如下情況:


      

        沒錯,虛擬環境需要box。這裏的box是虛擬機的一個鏡像。當然,如果通過VirtualBox 工具就可以爲我們快速創建一個鏡像,也就是.box 結尾的文件。我們可以通過圖形界面來創建一個鏡像,如下圖:


        然後選擇自己的配置,內存,內核,硬盤分配等。然後就可以直接啓動這個虛擬環境了。這個鏡像創建在VirtualBox 默認的目錄下面。

~/VirtualBox VMs/linnux1$ vagrant init 

        再用vagrant init 命令就可以創建一個新的虛擬化環境,以及描述文件:Vagrantfile了,這個文件就會聲明一個初始化的虛擬環境。   

        當然,也可以用命令來從遠程倉庫(http://cloud-images.ubuntu.com/vagrant/)下載一個鏡像。命令如下:

$vagrant box add Ubuntu-15-10 http://cloud-images.ubuntu.com/vagrant/wily/current/wily-server-cloudimg-amd64-vagrant-disk1.box  


         剩下的就是等待ubuntu的鏡像下載完成。我們還可以用box list 命令來查看已經擁有的box 


         box 添加到環境之後,然後我們就可以通過vagrant init precise64  命令來初始化一個vagrant 環境。然後再用vagrant up 命令啓動虛擬機。然後會看到如下效果: 


         環境啓動起來了,在vpro工程目錄,還會存在一個隱藏的 .vagrant目錄。這個目錄下面會有本次啓動的box的信息,包括一個本次環境的指定VM IDs。如果啓動遇到了:Your VM has become “inaccessible." 異常。直接刪除這個隱藏目錄就可以。再次用vagrant up命令,就會重新rebuild一個.vagrant 目錄以及正確的ID信息。啓動成功後接着就可以用vagrant ssh 命令來登錄到虛擬環境中。如下:

 

         虛擬環境的目錄會保留一份host路徑的共享目錄。接着就可以和虛擬機一起快樂的玩耍了。 


   4、保存鏡像

        爲了下一次可以更快速得登錄虛擬環境。這裏先exit 。然後用vagrant package 命令來在我們當前的vagrant項目目錄下打包box。打包好就可以在當前目錄下看到一個package.box。下一次就可以快速用這個打包好的box來啓動我們搭建好的一套虛擬環境了。這份box還可以共享。這樣大家都可以用工一份統一的部署環境了。搭建環境不容易,且搭且保存。

 

      然後就可以將這個box添加到我們的box 列表中了。下次可以直接init 這個box。 


    5、vagrant基本配置

     vagrant的配置信息都在Vagrantfile 中。也就是剛纔我們使用init命令後產生的文件。我們可以用vim編輯配置項。粗略看一眼,有很多的說明。。。 下面截出一部分。


       config.vm.box = “ubunto-ok”

      這裏設定我們剛纔打包好的box作爲默認的初始化鏡像。這樣以後vagrant init 命令就可以直接啓動默認的虛擬環境。

       config.vm.provider "virtualbox" do |vb|

       vb.gui = true

       vb.memory = "1024"

       這裏可以設置我們是否使用圖形化界面、虛擬memory的初始化值。這裏依據自己的情況來設置就可以。

       config.vm.host_name = "lijingyao"

       config.vm.network "forwarded_port", guest: 80, host: 8080

 

       上面這兩行設置了hostname和forword 的端口。通過這個端口設置就可以進行VM的80端口和host的localhost:8080通信了。

   6、vagrant 網絡配置

        配置成private_network 。也就是自己才能看到。先自嗨,不共享環境。如果要VM之間可以通信,就需要設置成public_network

config.vm.network :private_network,ip: "192.168.33.10"


         然後就可以用vagrant reload 讓我們的配置生效了(每次修改Vagrantfile 都需要reload配置纔可以生效)。 下次我們可以直接再vagrant項目目錄用vagrant up命令就可以啓動我們默認配置已經包裝好的box了。

 

    7、常用命令

vagrant up 啓動

vagrant halt 停止

vagrant suspend 暫停本地環境

vagrant resume 恢復本地環境

vagrant destroy 徹底移除本地環境

vagrant ssh 登陸虛擬環境


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章