Vagrant 错误 - 具有该名称的 VirtualBox 计算机已存在

2024-02-22

我想用ubuntu/xenial64框为两个单独的项目创建两个单独的虚拟机。我在两个单独的项目目录中定义了 Vagrantfile 并添加了行config.vm.box = "ubuntu/xenial64"每一个。

第一个盒子启动成功。但当我这样做时vagrant up对于第二个项目,我收到错误

A VirtualBox machine with the name 'ubuntu-xenial-16.04-cloudimg' already exists.

Vagrant 的文档中清楚地写着

盒子是为当前用户全局存储的。每个项目都使用一个 框作为要克隆的初始图像,并且从不修改实际的 基础图像。这意味着如果您有两个项目都使用 我们刚刚添加的 hashcorp/precise64 框,在一个来宾中添加文件 机器不会对其他机器产生影响。

为什么我会收到此错误?

我已经结帐了其他类似问题 https://stackoverflow.com/questions/26993903/a-virtualbox-machine-with-the-name-homestead-already-exists,但我不明白他们删除看起来具有相同名称的现有虚拟机的解决方案。根据上面 Vagrant 文档的引用,这应该是没有必要的。我错过了什么吗?


您不需要删除其他虚拟机,而且实际上您当然可以在同一个框中拥有许多虚拟机。

您的错误可能与 VirtualBox 中创建的虚拟机的 VirtualBox 名称有关,如果您覆盖了一个属性来设置此名称且其在您的 2 个项目上的名称相同,那么将会发生冲突,请参阅此answer https://stackoverflow.com/a/20431791/4296747查看定义虚拟机名称的不同方法

因此,要么让 vagrant 定义虚拟机的名称,要么确保您在不同的项目中具有唯一的虚拟机名称,并且它会运行得很好

UPDATE我选中这个特定的框,它包含以下 Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.base_mac = "02101FC67BA9"
  config.ssh.username = "ubuntu"
  config.ssh.password = "c1580f876b655137c6c35b69"
  config.vm.synced_folder '.', '/vagrant', disabled: true

  config.vm.provider "virtualbox" do |vb|
     vb.name = "ubuntu-xenial-16.04-cloudimg"
     vb.customize [ "modifyvm", :id, "--uart1", "0x3F8", "4" ]
     vb.customize [ "modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "%s-console.log" % vb.name) ]
  end
end

所以请确保在 Vagrantfile 中覆盖此属性

  config.vm.provider "virtualbox" do |vb|
     vb.name = "your specific project name"

并改变vb.name您的每个项目都是独一无二的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vagrant 错误 - 具有该名称的 VirtualBox 计算机已存在 的相关文章

随机推荐