【问题标题】:Failed Vagrant up rerun for VirtualBox gives errorVirtualBox 失败的 Vagrant 重新运行会给出错误
【发布时间】:2016-07-08 13:05:51
【问题描述】:

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

我解决了厨师指出的错误并再次重新运行了 vagrant up 命令,但这一次我得到了以下错误:

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

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

如果有任何方法可以在失败时强制 vagrant 自动更正/清理设置,请告诉我;因为我不想在失败时更改 vagrantfile,这可能由于多种原因而发生。

提前致谢。

【问题讨论】:

    标签: vagrant virtualbox vagrantfile


    【解决方案1】:

    您可以使用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 用户认为端口不正确 转发。启用自动更正很容易:

    最后的 :auto_correct 参数设置为 true 告诉 Vagrant 自动 纠正任何碰撞。在 vagrant up 或 vagrant reload 期间,Vagrant 将输出有关任何碰撞检测和自动的信息 进行了更正,以便您注意并采取相应措施。

    【讨论】:

      猜你喜欢
      • 2018-03-11
      • 2011-11-23
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      相关资源
      最近更新 更多