VirtualBox重新运行失败导致错误

时间:2016-07-08 13:05:52

标签: vagrant virtualbox vagrantfile

最近,我尝试使用VirtualBox作为VM提供程序设置Vagrant框。 在我的第一次尝试中,Vagrant正确创建了虚拟盒,但由于一些厨师错误而失败。

我解决了厨师指出的错误,并再次重新启用了vagrant up命令,但这次我遇到了以下错误:

  

Vagrant无法转发此VM上的指定端口,因为它们   会与正在收听的其他应用程序发生冲突   这些港口。

看来失败后,流浪汉没有清理与VBox相关的端口。我甚至尝试从它创建的Virtual Boxes目录中删除.vagrant目录和机器。仍然得到同样的错误。只有这样我才能通过更改vagrant文​​件中的端口转发来运行它。

请告诉我是否有任何方法可以在失败时强制进行阴道自动纠正/清洁设置;因为我不想在失败时改变vagrantfile,这可能由于很多原因而发生。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用auto_correct选项

Vagrant.configure("2") do |config|
  config.vm.network "forwarded_port", guest: 80, host: 8080,
    auto_correct: true
end

来自https://www.vagrantup.com/docs/networking/forwarded_ports.html

  

在不知不觉中运行多个Vagrant机器时很常见   创建相互冲突的转发端口定义(两个   单独的Vagrant项目转发到端口8080,例如)。   Vagrant包含内置机制来检测并纠正它,   自动。

     

始终进行端口碰撞检测。 Vagrant不允许你这样做   定义主机上的端口所在的转发端口   接受交通或连接。

     

必须为每个人手动启用端口冲突自动更正   转发端口,因为它发生时通常会令人惊讶并且可以   引导Vagrant用户认为端口不正确   转发。启用自动更正非常简单:

     

最终:auto_correct参数设置为true告诉Vagrant为auto   纠正任何碰撞。在流浪汉或流浪汉重新加载期间,Vagrant   将输出有关任何碰撞检测和自动的信息   更正了,所以你可以注意并采取相应的行动。