引言
 
  本文将讨论Vagrant基础应用,高级应用,基于Vagrant 的虚拟机优化,Vagrant的优势及区别等四部分
 
  参考资料:
Vagrant是什么
 

  Vagrant是构建在虚拟化技术之上的虚拟机运行环境管理工具。

  主要的功能:
    1. 建立和删除虚拟机
    2. 配置虚拟机运行参数
    3. 管理虚拟机运行状态
    4. 自动化配置和安装开发环境
    5. 打包和分发虚拟机运行环境

  vagrant可以支持多种虚拟环境,例如 VirtualBox, VMware, AWS, OpenStack等

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

初始化虚拟机步骤:

. 添加镜像
$ vagrant box add [box名称名称] [路径/名称.box] . 初始化虚拟机配置
$ vagrant init [box名称] . 启动虚拟机
$ vagrant up
 Vagrant高级知识
 
  本段主要操作box下Vagrantfile 文件
 
  1. 端口转发  将本机具体端口转发到虚拟机端口
  

# host=本机端口,guest=虚拟机端口
config.vm.network "forwarded_port", host:8888, guest:81

2. 共享目录    将本机具体目录和虚拟机共享

三种可选共享方式:
  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简述一下区别:
 

  1、docker只能执行docker所定义的容器。

  2、docker缺乏灵活的隔离方案(docker只能运行在Linux主机环境中)。

  3、 vagrant可以支持多种虚拟环境,例如 VirtualBox, VMware, AWS,

  4、 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适合用来管理应用环境。

Vagrant 总结的更多相关文章

  1. Vagrant 基础全面解析

    这篇 Vagrant 入门文章将带你创建一个 Vagrant 项目,这个过程将会用到 Vagrant 所提供的主要基本特性.如果想了解 Vagrant 能为你带来哪些好处,可以阅读 Vagrant 官 ...

  2. Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)

    Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...

  3. 使用packer制作vagrant centos box

    使用packer制作vagrant box:centos 制作vagrant box,网上有教程,可以自己step by step的操作.不过直接使用虚拟在VirtualBox中制作vagrant b ...

  4. vagrant 1.8.6 安装过程及总结遇到的坑

    下面先总结遇到的问题,这些问题如果你也遇到,可能需要搜索很多次才能找到原因. 如果想看安装过程,可以先直接跳到后面第二部分部分. 1 问题汇总: 1.1 vagrant版本过高问题. vagrant ...

  5. 快速打造跨平台开发环境 vagrant + virtualbox + box

    工欲善其事必先利其器,开发环境 和 开发工具 就是 我们开发人员的剑,所以我们需要一个快并且好用的剑 刚开始做开发的时候的都是把开发环境 配置在 自己的电脑上,随着后面我们接触的东西越来越多,慢慢的电 ...

  6. Vagrant基础简要记录

    Vagrant是一种开源软件,它为跨众多操作系统构建可重复的开发环境提供了一种方法.Vagrant使用提供者(provider)来启动隔离的虚拟环境.默认的提供者是Virtualbox Vagrant ...

  7. Mac OSX+VirtualBox+Vagrant+CentOS初体验

    1.安装VirtualBox VirtualBox下载地址 免费小巧非常适用,根据自己机器系统选择下载包 VirtualBox 安装包 2.安装并使用Vagrant 1)Vagrant下载地址 选择下 ...

  8. window 使用vagrant搭建开发开发环境

    # -*- mode: ruby -*-# vi: set ft=ruby : # All Vagrant configuration is done below. The "2" ...

  9. LNMP虚拟机开发环境配置--vagrant+virtualbox+ubuntu14.04

    工作一直用的是别人打包好的虚拟机开发环境,感觉确实很酷.所以准备自己配个开发环境,为之后自己开发一些有趣的东西做准备. ok,开始~~~ 一.安装软件 vagrant和virtualbox 此处需注意 ...

  10. Vagrant使用

    常用命令 命令 说明 vagrant up 运行vm vagrant status 查看当前虚拟机运行状态 vagrant suspend 暂停虚拟机 vagrant ssh ssh方式登录虚拟机 v ...

随机推荐

  1. intellij-maven-imports-have-broken-classpath

    公司自己搭得maven私服,然后使用git下载 公司mvn的依赖包时候,报错: 之后再idea里面发现依赖的jar包 有红色的错误信息,提示 maven imports have broken cla ...

  2. LearnHowToThink

    一.BubbleSort and XListview 1.BubbleSort (1)analysis traverse.compare.exchange.cycle.optimize strateg ...

  3. xise官方网站|xise最新版下载|-xise

    诠释: 1. 破解VIP登陆限制 2.去后门 (自查) 下载地址 :https://pan.baidu.com/s/1eR2rUOM 查毒地址:http://a.virscan.org/a3983f3 ...

  4. 你所不知道的C和C++运行库 标签: vc 2017-05-26 10:33 41人阅读 评论(0) 收藏

    在使用vs2013调用vc2005编译出的dll时出现错误,遂将源程序用vs2013编译出dll,再用vs2013调用错误消失,不解.寻找原因时有人说"VC库版本不一样",故查找C ...

  5. leveldb分析——单元测试工具

    leveldb中自己实现了一个简单的单元测试工具,下面是一个对CRC类测试的一个例子 class CRC { }; TEST(CRC, Extend) { ASSERT_EQ(Value(), Ext ...

  6. JQuery里ajax的表单传值serialize()用法

          本文导读:在jQuery中,当我们使用ajax时,常常需要拼装 input数据以键值对(Key/Value)的形式发送到服务器,用JQuery的serialize方法可以轻松的完成这个工作 ...

  7. Mac os下profile设置

    Mac os环境下home目录下是没有profile文件的开启终端后,读取的是/etc/profile文件因为个人喜欢使用ll命令,mac默认并没有这个命令,所以使用如下方法设置别名 cp -rp / ...

  8. poj 3414 Pots 【BFS+记录路径 】

    //yy:昨天看着这题突然有点懵,不知道怎么记录路径,然后交给房教了,,,然后默默去写另一个bfs,想清楚思路后花了半小时写了120+行的代码然后出现奇葩的CE,看完FAQ改了之后又WA了.然后第一次 ...

  9. 截取Excel字符串的部分字符

    截取Excel字符串的部分字符 我们可以使用Mid.Left.Right等函数从长字符串内获取一部分字符.  ①LEFT函数:  LEFT(text,num_chars)  Text是包含要提取字符的 ...

  10. 如何删除Word 2010中的“向下箭头”

    原文:https://jingyan.baidu.com/article/e75aca85552916142edac614.html 在日常办公中,如果从网站复制了一段文字,直接粘贴到Word中时,常 ...