前置条件
1、安装VirtualBox
2、安装Vagrant
3、在VirtualBox中安装操作系统,例如 CentOS

1)把在virtualBox中安装的系统打包成box

1、我们需要知道虚拟机的真实名称,进入virtualBox安装目录,执行:

$ ./VBoxManage.exe list vms
"centos_default_1521543788096_25035" {5c500bf3-759f-487a-b052-22428bc4cbf2}

其中 centos_default_1521543788096_25035 是虚拟机的名字。

2、利用vagrant package命令打包,先查看一下命令介绍:

$ vagrant package --help
Usage: vagrant package [options] [name|id] Options: --base NAME Name of a VM in VirtualBox to package as a base box (VirtualBox Only)
--output NAME Name of the file to output
--include FILE,FILE.. Comma separated additional files to package with the box
--vagrantfile FILE Vagrantfile to package with the box
-h, --help Print this help

--base NAME           指VirtualBox程序里的名称,也就是上步查找的名称。

--output NAME         指要打包的box名称,需要手动添加后缀.box

--include FILE...       打包时包含的文件名,你可以把.box文件理解为一个压缩包
--vagrantfile FILE     打包时包含的Vagrantfile文件,原理和上面类似

3、开始打包之前,关闭要打包的虚拟机,然后执行:

$ vagrant package --base centos_default_1521543788096_25035 --output centos20180                                                                                                                                                 .box
==> centos_default_1521543788096_25035: Clearing any previously set forwarded po rts...
==> centos_default_1521543788096_25035: Exporting VM...
==> centos_default_1521543788096_25035: Compressing package to: D:/vagrant/cento s/centos20180403.box

2)如果只是想打包正在运行的box,再次打包:

#删除虚拟机的一个网络配置文件
rm -f /etc/udev/rule.d/-persistent-net.rules
#关闭虚拟机
shutdown -h now
#打包
vagrant package --output mypackage.box

想要将操作系统打包为可用的Vbox镜像要做以下工作
1、创建vagrant用户和用户目录,密码为vagrant
2、添加vagrant用户的公共密钥,文件为/home/vagrant/.ssh/authorized_keys
3、在真实操作系统中执行vagrant package --base 虚拟机名称,这样会创建指定虚拟机的box
4、将制作好的Box添加到Vagrant环境中,vagrant box add name package.box
5、初始化运行环境,vagrant init name,在初始化环境的时候需要注意的一点是:这个目录下面如果以前初始化过,那么请执行vagrant destroy命令把这个环境销毁掉,并删除Vagrantfile文件,或者在windows环境下直接手动删除.vagrant目录和Vagrantfile文件有相同的效果。否则vagrant init命令无效,当你vagant up的时候得到的是一个和以前完全一样的环境。
6、运行Vagrant虚拟机,vagrant up

利用vagrant打包系统--制作自己的box的更多相关文章

  1. 利用qemu模拟嵌入式系统制作全过程

    http://www.tinylab.org/using-qemu-simulation-inserts-the-type-system-to-produce-the-whole-process/ 利 ...

  2. linux系统中利用vagrant创建虚拟开发环境

    Vagrant简介 作为程序员,可能需要同时开发多个项目,使用多种编程语言,需要使用各种操作系统,如果将很多东西放在同一个电脑上,肯定会被各种配置环境搞晕.一个比较好的办法就是每个项目都有一个干净的开 ...

  3. 利用Vagrant搭建多平台环境

    Vagrant 是一个创建和分发虚拟化开发环境的工具,使用ruby编写,本身并不包含虚拟机管理软件,因此我们需要配合Vagrant安装一个虚拟机软件.Vagrant支持VMware, Virtual ...

  4. 利用Vagrant完成开发环境配置

    作者:astaxie链接:https://github.com/astaxie/go-best-practice/blob/master/ebook/zh/01.0.md著作权归作者所有.商业转载请联 ...

  5. [技术博客] 利用Vagrant+virtualbox在windows下进行linux开发

    目录 加速box安装的方法 root账户登录 换源教程 安装rvm 访问rails server RubyMine连接虚拟机上的解释器 作者:庄廓然 在windows下进行linux开发:利用Vagr ...

  6. C/S模式开发中如何利用WebBrowser控件制作导航窗体

    原文:C/S模式开发中如何利用WebBrowser控件制作导航窗体 转自: CSDN 相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见 ...

  7. [Gradle] 在 Eclipse 下利用 gradle 构建系统

      转载自:http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/ 构建系统时候常常要用到 Ant, Maven 等工具,对于初学者 ...

  8. 利用U盘启动制作GHO镜像

    利用U盘启动制作GHO镜像 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. In a realproduction environment. 我们我们可能遇到频繁的安装系统,安装环境 ...

  9. 利用InstallShiled 10.5制作AE应用程序安装包

    [转]利用InstallShiled 10.5制作AE应用程序安装包 作者:3SNEWS 社区ESRI(ArcGIS)版版主:zhaoxiang_whuhttp://www.3snews.net/bb ...

随机推荐

  1. 隐马尔可夫模型HMM与维特比Veterbi算法(一)

    隐马尔可夫模型HMM与维特比Veterbi算法(一) 主要内容: 1.一个简单的例子 2.生成模式(Generating Patterns) 3.隐藏模式(Hidden Patterns) 4.隐马尔 ...

  2. Python网络爬虫 - 下载图片

    下载博客园的logo from urllib.request import urlretrieve from urllib.request import urlopen from bs4 import ...

  3. Mysql分区的技能

    1. 查看分区信息 (1)explain partitions select * from TDM_YTMF_BRAND_CATE_GDS_STC_D 语法:explain partitions se ...

  4. 亲自己主动手从源代码 构建 Groovy 2.3.8 公布包

    今天为了学习 怎样使用 Groovy 写 Groovy 的測试代码, 所以到 http://groovy.codehaus.org/Download 下载了 Groovy 2.3.8 的源码包. Gr ...

  5. Codeforces 417D Cunning Gena(状态压缩dp)

    题目链接:Codeforces 417D Cunning Gena 题目大意:n个小伙伴.m道题目,每一个监视器b花费,给出n个小伙伴的佣金,所须要的监视器数,以及能够完毕的题目序号. 注意,这里仅仅 ...

  6. selenium 加载jquery

    packagecom.example.tests; import staticorg.junit.Assert.*; importjava.util.*; importorg.junit.*; imp ...

  7. jQuery停止动画finish和stop函数区别

    stop()函数直接停止动画,finish()也会停止动画同时所有排队的动画的CSS属性跳转到他们的最终值. 示例代码: <html> <head> <meta char ...

  8. 感谢CSDN赠送的图书和杂志(5月份)

    互联网的精神就是开放.就是分享.在分享的同一时候.我们也会收获到意外的回报. 近期.因为我在5月份发表了14篇博文,因此CSDN赠送了一本图书<软件系统架构>(本人自己选的)和一本< ...

  9. Web服务器性能压力测试工具http_load、webbench、ab、Siege使用教程

    Web服务器性能压力测试工具http_load.webbench.ab.Siege使用教程 作者: feng 日期: 2012/07/25 发表评论 (0) 查看评论   一.http_load 程序 ...

  10. iOS任何界面全屏炫酷倒计时,一句代码就够了

    概述 iOS全屏炫酷倒计时,任何界面只需要调用一句代码就能实现,支持定制倒计时数字.倒计时结束时显示的文本.支持倒计时播放图片.开始倒计时和结束倒计时的block和delegate回调.支持定制文本颜 ...