我正在Windows 10上创建一个带有vagrant的虚拟开发环境。我已经安装了名为'dev1'的盒子(它是CentOS7.0)。
我想添加一个名为'dev2'的新盒子(CentOS6.7)。
所以我尝试按下面的命令添加一个框
$ vagrant box add dev2 [box path]
之后,成功添加。
$ vagrant box list
dev1 (virtualbox, 2.3.1)
dev2 (virtualbox, 0)
然后我执行$ vagrant init'
并编辑vagrantfile,如下所示
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)
启动虚拟机管理器,它不显示'dev2'的信息。
当我尝试$ vagrant up dev2
时,它开始下载CentOS6.7盒子文件而不是我之前添加的'dev2'...
除现有环境外,如何添加新框?
提前谢谢。
答案 0 :(得分:1)
您在流浪汉配置中添加的框和您在Vagrantfile中使用的名称不匹配。
如果您已添加该框并为其指定了输出
$ vagrant box list
dev1 (virtualbox, 2.3.1)
dev2 (virtualbox, 0)
此名称必须与Vagrantfile中config.vm.box
的值匹配,因此您需要在Vagrantfile中使用这些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 box和VM之间存在一些混淆。
我建议您保留Vagrantfile,并参考便当盒,删除dev1 / 2框并运行vagrant up
。 Vagrant将下载便当盒,将它们添加到您的配置中,并将启动dev1和dev2虚拟机。
答案 1 :(得分:0)
在每个Vagrant's guide尝试使用无所不在的package --base命令之后,我也收到了相同的消息。
DecimalFormat format = new DecimalFormat("¤#,##0.00", DecimalFormatSymbols.getInstance(Locale.US));
format.setParseBigDecimal(true);
BigDecimal number = (BigDecimal) format.parse(input);
要使其正常运行,必须检查并使用通过Vagrantfile和config.vm.name =“您选择的名称”预先设置的确切名称。您还将看到它显示在VirtualBox中(除非您更改了它)。
这是我的测试中显示的默认名称的屏幕截图示例。
我正在使用Powershell,所以这是我的输出:
$ vagrant package --base my-virtual-machine
`VM not created. Moving on...`