前置条件
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. Python访问PostGIS(建表、空间索引、分区表)

    #encoding: utf-8 __author__ = 'Administrator' import psycopg2 import ppygis import datetime import s ...

  2. tcpdump-根据IP查看程序与服务都用了哪些端口

    tcpdump -i em1 -tttt src 116.3.248.157 and port ! 6869 -nn -i 指定端口 -tttt 附带时间戳 -nn 解析域名与端口信息 ####### ...

  3. HttpContext.Current.Cache 和 HttpRuntime.Cache

    HttpRuntime.Cache:用于winfrom 和 web HttpContext.Current.Cache 用于web .NET中Cache有两种调用方式:HttpContext.Curr ...

  4. angular cli中的--flat参数

    添加--flat 参数,表示不创建单独的目录 例如 ng g c news/news-detail 会将文件创建在app/news/news-detail目录下 ng g c news/news-de ...

  5. php之快速入门学习-15(php函数)

    PHP 函数 PHP 的真正威力源自于它的函数. 在 PHP 中,提供了超过 1000 个内建的函数. PHP 内建函数 如需查看所有数组函数的完整参考手册和实例,请访问我们的 PHP 参考手册. P ...

  6. 算法笔记_210:第六届蓝桥杯软件类决赛真题(Java语言C组)

    目录 1 机器人数目 2 生成回文数 3 空心菱形 4 奇怪的数列 5 密文搜索 6 居民集会 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 机器人数目 标题:机器人数目 少年宫新近邮购了小机器人 ...

  7. IE hack 汇总

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. libevent个人理解

    1.利用了前置声明来在c语言的基础上进行封装操作.即在include目录下防止event.h等头文件,在这些头文件中只暴露struct的声明却不暴露其定义,对于如event_base等结构的操作均使用 ...

  9. 16、java包装类

    一.包装类的由来: JAVA是面向对象的编程语言,但它也包含了8种基本数据类型,这8个基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备“对象”的特性:没有属性,方法可以被调用.JAVA ...

  10. npm换国内淘宝镜像

    来源于:http://yijiebuyi.com/blog/b12eac891cdc5f0dff127ae18dc386d4.html 为什么要换源? npm 官方站点 http://www.npmj ...