Vagrant 总结
Vagrant是构建在虚拟化技术之上的虚拟机运行环境管理工具。
主要的功能:
1. 建立和删除虚拟机
2. 配置虚拟机运行参数
3. 管理虚拟机运行状态
4. 自动化配置和安装开发环境
5. 打包和分发虚拟机运行环境
vagrant可以支持多种虚拟环境,例如 VirtualBox, VMware, AWS, OpenStack等
个人:跨平台、可移动、自动化部署无需人工参与
公司:节省人力成本、统一开发环境
# 查看已有的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
# 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"
# 设置虚拟机主机名
config.vm.hostname = "ueba" config.vm.provider "virtualbox" do |vb|
# 设置虚拟机内存 1024M
vb.memory = "1024" # 设置虚拟机名称
vb.name = "vm_name" # 设置cpu 数量
vb.cpus = 2
end
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 总结的更多相关文章
- Vagrant 基础全面解析
这篇 Vagrant 入门文章将带你创建一个 Vagrant 项目,这个过程将会用到 Vagrant 所提供的主要基本特性.如果想了解 Vagrant 能为你带来哪些好处,可以阅读 Vagrant 官 ...
- Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)
Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...
- 使用packer制作vagrant centos box
使用packer制作vagrant box:centos 制作vagrant box,网上有教程,可以自己step by step的操作.不过直接使用虚拟在VirtualBox中制作vagrant b ...
- vagrant 1.8.6 安装过程及总结遇到的坑
下面先总结遇到的问题,这些问题如果你也遇到,可能需要搜索很多次才能找到原因. 如果想看安装过程,可以先直接跳到后面第二部分部分. 1 问题汇总: 1.1 vagrant版本过高问题. vagrant ...
- 快速打造跨平台开发环境 vagrant + virtualbox + box
工欲善其事必先利其器,开发环境 和 开发工具 就是 我们开发人员的剑,所以我们需要一个快并且好用的剑 刚开始做开发的时候的都是把开发环境 配置在 自己的电脑上,随着后面我们接触的东西越来越多,慢慢的电 ...
- Vagrant基础简要记录
Vagrant是一种开源软件,它为跨众多操作系统构建可重复的开发环境提供了一种方法.Vagrant使用提供者(provider)来启动隔离的虚拟环境.默认的提供者是Virtualbox Vagrant ...
- Mac OSX+VirtualBox+Vagrant+CentOS初体验
1.安装VirtualBox VirtualBox下载地址 免费小巧非常适用,根据自己机器系统选择下载包 VirtualBox 安装包 2.安装并使用Vagrant 1)Vagrant下载地址 选择下 ...
- window 使用vagrant搭建开发开发环境
# -*- mode: ruby -*-# vi: set ft=ruby : # All Vagrant configuration is done below. The "2" ...
- LNMP虚拟机开发环境配置--vagrant+virtualbox+ubuntu14.04
工作一直用的是别人打包好的虚拟机开发环境,感觉确实很酷.所以准备自己配个开发环境,为之后自己开发一些有趣的东西做准备. ok,开始~~~ 一.安装软件 vagrant和virtualbox 此处需注意 ...
- Vagrant使用
常用命令 命令 说明 vagrant up 运行vm vagrant status 查看当前虚拟机运行状态 vagrant suspend 暂停虚拟机 vagrant ssh ssh方式登录虚拟机 v ...
随机推荐
- angular中的scope
angular.element($0).scope() 什么是scope? scope是一个refer to the application model的object.它是一个expression的执 ...
- 面对IBM与亚马逊的犄角攻势,微软云如何招架?
亚马逊AWS和微软Azure是全球公有云的焦点.不就前公布的财报不久前公布的财报,这两家公司云计算的收入越来越接近,从数据显示来看,亚马逊的利润比微软稍高,有人称微软云的高增长来自于捆绑销售,背后真正 ...
- .net 流(Stream) - StreamWriter和StreamReader、BinaryReader和BinaryWriter
转自:http://www.oseye.net/user/kevin/blog/86 一.StreamWriter和StreamReader 从上一篇博文可知文件流.内存流和网络流操作的都是字节,每次 ...
- Ajax向Controller发送请求并接受数据需要注意的一个细节
想用Ajax想向Controller发送请求和接收返回的字符等等.Controller中要使用@ResponseBody注解. <script type="text/javascrip ...
- 【转】2013 PHP技术峰会《Bug Free的PHP开发实践分享》摘录
要想代码写的好,前提配置做的好 error_reporting = E_ALL | E_STRICT display_errors = 测试机设置为 On,生产机设置为 Off display_s ...
- 牛客网多校训练第三场 A - PACM Team(01背包变形 + 记录方案)
链接: https://www.nowcoder.com/acm/contest/141/A 题意: 有n(1≤n≤36)个物品,每个物品有四种代价pi,ai,ci,mi,价值为gi(0≤pi,ai, ...
- how to design Programs 学习笔记
how to design Programs 学习笔记 */--> how to design Programs 学习笔记 目录 1. 前言 1.1. 系统化程序设计 1.2. 输入和输出 2. ...
- 如何选择PHP项目的开发方案?
我说的项目开发方案并不是谈论到底用不用PHP去开发的问题,而是当你遇到一个项目,已经决定了用PHP,然后才来看的问题:用PHP的什么开发方案. 基本上有这么几种方案.各有各的说法,良莠不齐,我就谈谈我 ...
- 4.spriing:Bean的生命周期/工厂方法配置Bean/FactoryBean
1.Bean的生命周期 scope:singleton/prototype 1)spring容器管理singleton作用的生命周期,spring能够精确知道Bean合适创建,何时初始化完成,以及何时 ...
- 2018.12.31 Failed to load JavaHL Library.错误解决
创建项目出现下面的错误 Failed to load JavaHL Library. These are the errors that were encountered: no libsvnjava ...