在本地复制无业游民框


27

我在VirtualBox上运行了一个无聊的盒子,我需要制作一个副本(及其所有现有配置和数据),以便我可以对其进行更改而不会影响原始版本。

问题是我的原始包装盒是一个文件包-我正在使用的互联网连接速度非常慢,所以其他人将他们的vagrant和virtualbox文件夹复制到了我的机器上。因此,没有

config.vm.box_url

使用。

我该怎么做?

编辑:我正在使用Vagrant 1.2.2

Answers:


41

从现有虚拟机创建一个新框:

  • cd与您的Vagrant文​​件一起进入目录

  • 运行vagrant package这将默认导出一个名为package.box的盒子文件

  • 运行vagrant box add foo package.box以将package.box添加到您现有的盒子中。(假设您使用的是VirtualBox而不是VMWare)

  • 运行vagrant box list以验证是否已添加。

现在,您只需创建一个新文件夹,即可vagrant init正常运行并将其框设置为以下内容:

 config.vm.box = "foo"

新的VM将使用先前VM中存在的确切数据启动。

流浪文档


此外,还要从Vagrant的创建者那里检出一种名为Packer的新产品。它将执行相同的操作,但是允许您将虚拟机复制到其他提供程序(Amazon,VirtualBox等)。

更新资料

较新版本的Vagrant具有两个命令,这些命令使上述步骤不再需要。

vagrant share
vagrant package

Vagrant share会将您的盒子上传到地图集,然后
Vagrant package会自动创建一个.box文件。

有关更多信息,请键入 vagrant --help


似乎是一种不错的方法,但不幸的是,我正在使用不同版本的vagrant,而您的命令似乎适用于1.0.x
xiankai 2013年

@xiankai我正在运行1.2.2,并且我已验证这些步骤对我有用。为了清楚起见,我对答案做了一些调整,然后再尝试一次,让我知道您遇到了什么错误。
spuder

啊,看完您发布的链接后,我尝试了vagrant package替代方法vagrant box package,看来我现在处在正确的轨道上!
xiankai 2013年

无业游民的包裹是正确的。那是我的错字。
spuder
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.