Vagrant 總結

引言
 
  本文將討論Vagrant基礎應用,高級應用,基於Vagrant 的虛擬機優化,Vagrant的優點及區別等四部分
 
   參考資料:
Vagrant是什麼
 

  Vagrant是構建在虛擬化技術之上的虛擬機運行環境管理工具。html

  主要的功能:
    1. 創建和刪除虛擬機
    2. 配置虛擬機運行參數
    3. 管理虛擬機運行狀態
    4. 自動化配置和安裝開發環境
    5. 打包和分發虛擬機運行環境

  vagrant能夠支持多種虛擬環境,例如 VirtualBox, VMware, AWS, OpenStack等docker

 

Vagrant的做用
 
   兩方面:

    我的:跨平臺、可移動、自動化部署無需人工參與
    公司:節省人力成本、統一開發環境網絡

 
Vagrant經常使用命令總結
# 查看已有的box
$ vagrant box list

# 新建加一個box
$ vagrant box add [這次鏡像名稱] [源鏡像]

# 刪除指定box
$ vagrant box remove [名稱]

# 初始化配置vagrantfile
$ vagrant init

# 啓動虛擬機
$ vagrant up

# ssh登錄虛擬機
$ vagrant ssh

$ 掛起虛擬機
# vagrant suspend

# 重啓虛擬機
$ vagrant reload

# 關閉虛擬機
$ vagrant halt

# 查看虛擬機狀態
$ vagrant status

# 刪除虛擬機
$ vagrant destroy

# 打包當前環境下爲 box鏡像
$ vagrant paskage --output xxx.box

初始化虛擬機步驟:ssh

1. 添加鏡像
$ vagrant box add [box名稱名稱] [路徑/名稱.box]

2. 初始化虛擬機配置
$ vagrant init [box名稱]

3. 啓動虛擬機
$ vagrant up

 

 Vagrant高級知識
 
  本段主要操做box下Vagrantfile 文件
 
   1. 端口轉發  將本機具體端口轉發到虛擬機端口
  
# host=本機端口,guest=虛擬機端口
config.vm.network "forwarded_port", host:8888, guest:81

 

2. 共享目錄    將本機具體目錄和虛擬機共享ide

三種可選共享方式:
  1. Basic Usage # 基礎共享方式【默認】
  2. NFS # Mos系統 共享目錄方式
  3. SMB # Windows系統 共享目錄方式
  主要是爲了使本機的文件更改以後可以更快的同步到虛擬機中,更快的生效工具

  
# 本機目錄同步到虛擬機目錄 :nfc[可選項]
config.vm.synced_folder "/Users/vincent/code/", "/home/www", :nfc => true
注意:
# 1. 須要配置私有網絡IP
#   2. Nginx 的sendfile on 須要改成 off;否則同步目錄速度較慢

 

3. 網絡配置  三種網絡配置方式學習

公有網絡優化

# 要和本機網段一致
config.vm.network "public_network", ip: "192.168.33.10"

私有網絡阿里雲

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

 

 Vagrant 虛擬機優化
   
  本段主要針對Vagranfile 中的屬性修改
  
# 設置虛擬機主機名
config.vm.hostname = "ueba"

config.vm.provider "virtualbox" do |vb|
  # 設置虛擬機內存 1024M
  vb.memory = "1024"

  # 設置虛擬機名稱
  vb.name = "vm_name"

  # 設置cpu 數量
  vb.cpus = 2
end

 

總結
 
  這裏對Vagrant和docker簡述一下區別:
 

  一、docker只能執行docker所定義的容器。spa

  二、docker缺少靈活的隔離方案(docker只能運行在Linux主機環境中)。

  三、 vagrant能夠支持多種虛擬環境,例如 VirtualBox, VMware, AWS,

  四、 vagrant 能夠更好的配置網絡和文件共享。好比:vagrant能夠給一個VM配置靜態IP和端口數據轉發。不論你使用的VirtualBox仍是 VMware,vagrant均可以很好的完成配置。對於文件共享來講,vagrant提供了多種文件掛載方案供你考慮。若是你使用了docker,那麼 這些事情就都須要你親自動手來作了。

  5. vagrant 1.6中集成了docker-based development environments。因此在MAC和Windows環境中,vagrant會自動啓動一個虛擬機來執行docker,這樣就達到了docker的跨平臺化。而背後例如網絡,文件等等操做都是vagrant默默完成的。

  6. 針對於場景來講,Vagrant 適合用來管理虛擬機,而docker適合用來管理應用環境。

相關文章
相關標籤/搜索