virtual-machine - vagrant 包如何保存对新框的更改

标签 virtual-machine virtualbox vagrant

我的问题与this here有关但我没有让它工作。

我使用了一个来自 vagrantbox.es ( http://goo.gl/KwQSa2 ) 的预制 vagrant box,我想进行一些更改并将新虚拟机重新打包到一个新的 vagrant box 文件中。

为了获得初始框,我添加 config.vm.box_url = "http://goo.gl/KwQSa2"到我的 Vagrant 文件。

调用后vagrant up我愿意 vagrant ssh然后是一些操作(例如 touch testfile.txt )。

注销后我使用 vagrant package这创建了 package.box .

然后我做 vagrant destroy , 添加路径到 package.boxconfig.vm.box_url在我的 Vagrant 文件中做 vagrant up再次。

当我登录虚拟机时,我的 testfile.txt不在那里,所以看起来我打包了未更改的盒子。

我尝试了其他东西,例如 vagrant box repackage没有成功。

我在这里缺少什么?

最佳答案

打包时,您必须根据基本框指定(由 vagrant up )创建的新 VM 的 UUID。

NOTE: If you are using VirtualBox, it'll create a new VM with name - base_box_name-default-UUID.



运行时
vagrant package --base name --output /path/to/name.box--base NAME , name 应该是新 VM 的名称或其 UUID。

您可以使用以下命令获取它:

$ VBoxManage list vms
"oracle65" {5f9e6136-7773-4cd5-99a1-3a66b5e48045}
"Ubuntu" {e8c5a28c-788d-4d57-8c4a-c1f032a02443}
"oracle510" {fed5f379-495e-4b4b-b4e2-24f98edd2e72}
"archlinux" {c79dcee9-a523-4300-b026-cbc93ad37062}
"Windows" {fa768a76-5710-4b07-a4df-cc388370f038}
"Wiki" {a50ce314-6af8-4633-b02e-82b765cbf401}
"openSUSE" {af3cdf13-7e00-4c24-ae52-423919359b18}
"Debian" {37680776-73b9-44fd-8348-f60fd3895624}
"Solaris" {bc7be4ab-293d-4c94-b591-b5445a954f6c}
"centos_default_1395637517620_29337" {03d1282a-c7ba-493b-91ad-ec26ed763b6c}
"Kubuntu" {787ce012-00ef-4f90-acda-1b65c6d9941b}

关于virtual-machine - vagrant 包如何保存对新框的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23543866/

相关文章:

database - TFS 2010 分支触发器(使用数据库启动 VM)

Vagrant - 通过浏览器访问而没有 url 端口?

vagrant - 双向 Vagrant Rsync

azure - 如何在 Azure 门户中的两个现有 VM 之间创建网络连接

maven - 无法从 java 客户端连接到我的虚拟机上的 kafka

c - IOCTL 调用适用于某些架构

docker - Windows上的Docker计算机端口转发不起作用

Virtualbox 错误中的 Windows Server 2012 R2

cassandra - 使用缺少 dsc22 的 Puppet 在 Vagrant Centos 上安装 Cassandra

hadoop - 为什么 Hadoop 作业在云中(使用多节点集群)比在普通 PC 上慢?