在本地复制无业游民框


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.