Vagrant 流浪汉说';未创建';。如何添加新的box文件?

Vagrant 流浪汉说';未创建';。如何添加新的box文件?,vagrant,virtual-machine,virtualbox,box,Vagrant,Virtual Machine,Virtualbox,Box,我正在Windows 10上使用vagrant创建一个虚拟开发环境。我已经安装了名为“dev1”的box(它是CentOS7.0) 我想添加一个名为“dev2”的新框(CentOS6.7) 所以我试图通过下面的命令添加一个框 $ vagrant box add dev2 [box path] 之后,成功添加 $ vagrant box list dev1 (virtualbox, 2.3.1) dev2 (virtualbox, 0) 然后我执

我正在Windows 10上使用vagrant创建一个虚拟开发环境。我已经安装了名为“dev1”的box(它是CentOS7.0)

我想添加一个名为“dev2”的新框(CentOS6.7)

所以我试图通过下面的命令添加一个框

$ vagrant box add dev2 [box path]
之后,成功添加

$ vagrant box list
dev1             (virtualbox, 2.3.1)
dev2             (virtualbox, 0)
然后我执行
$vagrant init'
并编辑vagrant文件,如下所示

Vagrant.configure("2") do |config|

    config.vm.define "dev1" do |dev1|
      dev1.vm.hostname = "dev1"
      dev1.vm.box = "bento/centos-7.2"
      dev1.vm.network "private_network", ip: "192.168.33.11"
    end

    config.vm.define "dev2" do |dev2|
      dev2.vm.hostname = "dev2"
      dev2.vm.box = "bento/centos-6.7"
      dev2.vm.network "private_network", ip:"172.16.1.2"
    end
end
完成编辑后,我输入了命令
$vagrant status
,但它显示:

Current machine states:
dev1                      poweroff (virtualbox)
dev2                      not created (virtualbox)
启动virtualbox manager时,它不显示“dev2”的任何信息

当我尝试
$vagrant up dev2
时,它会开始下载CentOS6.7 box文件,而不是启动我之前添加的“dev2”

如何在现有环境之外添加新框


提前感谢。

您在vagrant配置中添加的框与您在vagrant文件中使用的名称不匹配

如果已添加该框并在输出时为其命名

$ vagrant box list
dev1             (virtualbox, 2.3.1)
dev2             (virtualbox, 0)
此名称必须与Vagrant文件中的
config.vm.box
的值匹配,因此您需要在Vagrant文件中使用这些
dev1
dev2
名称

Vagrant.configure("2") do |config|

    config.vm.define "dev1" do |dev1|
      dev1.vm.hostname = "dev1"
      dev1.vm.box = "dev1"
      dev1.vm.network "private_network", ip: "192.168.33.11"
    end

    config.vm.define "dev2" do |dev2|
      dev2.vm.hostname = "dev2"
      dev2.vm.box = "dev2"
      dev2.vm.network "private_network", ip:"172.16.1.2"
    end
end
在您的情况下,我不确定您为什么将该框添加为dev1和dev2。您似乎对虚拟机和虚拟机有一些混淆


我建议将vagrant文件保留为您参考的便当盒,移除dev1/2盒,然后运行
vagrant up
。Vagrant将下载便当盒,将它们添加到您的配置中,并将启动dev1和dev2虚拟机。

在尝试Vagrant软件包--base命令per之后,我也收到了相同的消息

特别是要使其工作,您必须检查并使用通过Vagrantfile和config.vm.name=“您选择的名称”预设的确切名称。您还将在VirtualBox中看到它的显示(除非您对其进行了更改)

下面是一个从我的测试中得到的默认名称的示例屏幕截图

我正在使用Powershell,所以这是我的输出:

PS C:\Users\USER\OneDrive\Documents\Projects\Vagrant2> vagrant package --base Vagrant2_default_1598799939605_1106
==> Vagrant2_default_1598799939605_1106: Exporting VM...
==> Vagrant2_default_1598799939605_1106: Compressing package to: C:/Users/USER/OneDrive/Documents/Projects/Vagrant2/package.box

哎呀!我在Vagrant文件上犯了一个错误。我把vm.hostname和vm.box搞混了。谢谢你的评论!
PS C:\Users\USER\OneDrive\Documents\Projects\Vagrant2> vagrant package --base Vagrant2_default_1598799939605_1106
==> Vagrant2_default_1598799939605_1106: Exporting VM...
==> Vagrant2_default_1598799939605_1106: Compressing package to: C:/Users/USER/OneDrive/Documents/Projects/Vagrant2/package.box