在本地复制 vagrant box

xia*_*kai 28 virtualbox virtual-machine vagrant

我有一个在 VirtualBox 上运行的 vagrant box,我需要制作一个副本(包含所有现有的配置和数据),以便我可以对其进行更改而不影响原始配置。

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

config.vm.box_url
Run Code Online (Sandbox Code Playgroud)

使用。

我怎样才能做到这一点?

编辑:我正在使用 Vagrant 1.2.2

spu*_*der 42

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

  • cd 进入你的 Vagrant 文件所在的目录

  • runvagrant package这将默认导出一个名为 package.box 的 box 文件

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

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

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

 config.vm.box = "foo"
Run Code Online (Sandbox Code Playgroud)

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

流浪文档


另外从 Vagrant 的创建者那里签出一个名为Packer的新产品。它会做同样的事情,但允许您将虚拟机复制到其他提供商(亚马逊、VirtualBox 等)

更新

较新版本的 Vagrant 有两个命令,使上述步骤变得不必要。

vagrant share
vagrant package
Run Code Online (Sandbox Code Playgroud)

Vagrant share将您的盒子上传到atlas
Vagrant package将自动创建一个 .box 文件。

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