vgrant使用简易教程
- 认识vagrant
- vagrant用于创建和部署虚拟化开发环境
- 避免了多次重新配置环境
- 节约了开发时间,同时可以体验不同的操作系统
- 对于新手也是一个不错的方式,当我们配置出错,直接删除重新安装即可
- 准备工具
- VirtualBox 作为虚拟化管理器(下载地址:https://www.virtualbox.org/wiki/Download_Old_Builds_5_1),
- Vagrant(下载地址https://releases.hashicorp.com/vagrant/1.8.6/) ,
- Ubuntu镜像(下载地址:https://pan.baidu.com/s/1kU8fUlD)
- 下载之后请确保文件名为ubuntu1404.box
- 中文文档http://tangbaoping.github.io/vagrant_doc_zh/v2/
- 安装
- 安装virtualbox,vagrant直接按照平常安装软件一样即可。
- 安装好后,进入磁盘目录,任意磁盘都行,创建一个管理目录。这里以vagrant目录为例。同时推荐终端工具不适用windows自带的dos,这里推荐xshell工具。
- 当以上工具准备好后,即可开始安装了,我们先进入我们创建的vagrant目录中,查看当前当前的虚拟机列表。vagrant box list。Ubuntu1604server便是我之前实现安装好了的虚拟机。
- 我们添加一个虚拟机,vagrant box add 。我这里把镜像文件放在wamp64下面的。添加完之后,我们在查看当前的虚拟机,即可看到我们方才添加的虚拟机

- 初始化虚拟机 vagrant init ubuntu。此时我们查看vagrant目录下面就会多一个名为Vagrantfile的配置文件。这个配置文件主要后期我们在对虚拟做修改时,直接修改该文件。
- 开启虚拟机 vagrant up

- 登录虚拟机 vagrant ssh,登录之后,我们就可以像操作Linux一样操作了。此时我们将我们常用的环境配置直按照平常的操作配置即可。
- 基本使用命令
- vagrant box list 查看当前虚拟机
- vagrant box add 添加一个虚拟机
- vagrant box remove 移除虚拟机
- vagrant init 初始化一个虚拟机
- vagrant up 开启虚拟机
- vagrant ssh 登录虚拟机
- vagrant suspend 挂起虚拟机
- vagrant reload 重启虚拟机
- vagrant halt 关闭虚拟机
- vagrant status查看虚拟机状态
- vagrant destory 删除虚拟机
- 端口转化(这里以Nginx为例)
- 找到vagrant目录下的Vagrantfile配置文件,添加
config.vm.network "forwarded_port", guest: 80, host: 8888 8888为Nginx的端口号,80为物理机的端口号,此时我们便可以在我们的物理机上使用127.0.0.1访问Nginx了。
- 或者使用virtualbox图形界面。



- 找到vagrant目录下的Vagrantfile配置文件,添加
- 打包分发
- 按照上面的流程,我们基本的环境已经搭建好了,就是将虚拟机打包出去,方便以后或者别人直接使用。
- 使用vagrant package [--output xxx.box] 不添加后面参数,默认打包为package.box的镜像文件,如果后面参数添加了,则输出xxx.box的镜像文件。
- 当别人拿到我们打包后的镜像文件,直接使用vagrant init即可使用,此时同样的会生成一个Vagrantfile配置文件,我们需要对虚拟机进行操作,直接在配置文件修改即可。
- 当我们的镜像文件更新,可以采用第二步的方式,从新打包给别人使用。也可使用命令操作。如下,我们安装了apache2,直接将这个命令发给使用者,添加到Vagrantfile配置文件,在重启虚拟机即可。
vgrant使用简易教程的更多相关文章
- 生活科技两相宜:(一)Win7使用微软SkyDrive网盘简易教程
今天得写一个Win7使用微软SkyDrive网盘的简易教程,主要是给我老婆看,顺便贴出来给大家共享一下:) 使用微软SkyDrive网盘有两个层次.一个是使用网页版,这个跟使用163或者QQ网盘 ...
- JavaScript简易教程(转)
原文:http://www.cnblogs.com/yanhaijing/p/3685304.html 这是我所知道的最完整最简洁的JavaScript基础教程. 这篇文章带你尽快走进JavaScri ...
- Emacs简易教程
Emacs简易教程阅读: 命令: $emacs 进入之后,输入: C-h t 这里,C-h表示按住[Ctrl]键的同时按h ####### 20090620 *退出: 输入“C-x C-c” *撤销: ...
- 文件上传利器SWFUpload入门简易教程
凡做过网站开发的都应该知道表单file的确鸡肋. Ajax解决了不刷新页面提交表单,但是却没有解决文件上传不刷新页面,当然也有其它技术让不刷新页面而提交文件,该技术主要是利用隐藏的iFrame, 较A ...
- 【转】Delphi内嵌ASM简易教程
Delphi内嵌ASM简易教程 作者:heiying2006-03-19 18:33分类:默认分类标签: 前言 Delphi作为一个快速高效的开发平台,使用的人越来越多,但熟悉在Delphi代码中嵌入 ...
- Ant 简易教程
转载:http://www.cnblogs.com/jingmoxukong/p/4433945.html Ant 简易教程 Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动 ...
- Intellj IDEA 简易教程
Intellj IDEA 简易教程 目录 JDK 安装测试 IDEA 安装测试 调试 单元测试 重构 Git Android 其他 参考资料 Java开发IDE(Integrated Developm ...
- MetaProducts Offline Explorer使用简易教程
MetaProducts Offline Explorer使用简易教程 by windtrace 20170419 最近想下载一个网站上的内容打包成chm文件,以便离线浏览,webzip太长时间不更 ...
- Zabbix实战-简易教程系列
一.基础篇(安装和接入) Zabbix实战-简易教程--总流程 Zabbix实战-简易教程--整体架构图 Zabbix实战-简易教程--DB安装和表分区 Zabbix实战-简易教程--Server端 ...
随机推荐
- 重写NSArray与NSDictionary的descriptionWithLocale方法
重写NSArray的descriptionWithLocale方法: NSArray+log.h #import <Foundation/Foundation.h> @interface ...
- Nest客户端的基本使用方法
通过Nuget安装好Nest的相关Dll,之后我们就可以开始了, 1.初始化Nest客户端 string indexName = "customer"; Uri uri = new ...
- VS窗体选择BackGroupImage属性报错:已添加具有相同键的项
高墙我今天第一次遇见这个问题.既然说是"已添加具有相同键的项."那我自然地认为会不会是文件夹哪里命名了两个相同的文件名.然后在这个Exception上越走越远. 好了不说废话.出现 ...
- c++中enum的用法——枚举类型
将变量的可取值全部列举出来,写在程序的开头,使用该类型的时候显示地指定取值即可(即对枚举变量进行赋予元素操作,这里之所以叫赋元素操作不叫赋值操作就是为了说明枚举变量是不能直接赋予算数值的). 如: e ...
- Python 安装虚拟环境
写在前面: 安装指南是在 Ubuntu 下面操作的.不同的 Linux 版本,安装指令不同.所以,该指南的某些指令对于像 CentOS 等非 Ubuntu 系统不适用. 为什么需要使用虚拟环境? 虚拟 ...
- Linux 安装SVN服务器 (转)
一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...
- Spring Boot 学习笔记--整合Redis
1.新建Spring Boot项目 添加spring-boot-starter-data-redis依赖 <dependency> <groupId>org.springfra ...
- activity生命周期分析(两个activity之间跳转的生命周期执行顺序)
NoteMainActivity点击跳转至NoteListActivity 我们都了解: 当A界面点击进入B界面时,此时 A===onPause--->onStop ...
- idea 集成sonarLint
1.目标 idea集成sonar的代码检查,实现可以在提交代码前就检查你的代码,而不是将代码提交之后,之后再去检查. Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量 ...
- 《JavaScript面向对象编程指南(第2版)》读书笔记(一)
目录 一.对象 1.1 获取属性值的方式 1.2 获取动态生成的属性的值 二.数组 2.1 检测是否为数组 2.2 增加数组长度导致未赋值的位置为undefined 2.3 用闭包实现简易迭代器 三. ...