流浪者删除,停止和销毁之间有什么区别

时间:2018-12-05 19:16:35

标签: vagrant

所以我在流浪时是一个初学者。在浏览与之相关的在线内容和文档时,我遇到了3个无所适从的命令,即“销毁”,“删除”和“停止”。有人可以明确他们会做什么吗?

我知道: DESTROY:此命令停止正在运行的Vagrant正在管理的计算机,并销毁在计算机创建过程中创建的所有资源。运行此命令后,您的计算机应保持干净状态,就好像您从未首先创建来宾计算机一样。

HALT:此命令关闭Vagrant正在管理的运行计算机。

删除:此命令从Vagrant中删除与给定名称匹配的框。那么这是否从硬盘驱动器中取出盒子?

我无法想象这些命令之间的区别。 我的感觉是停止就像关闭VM。资源仍然分配给它。 破坏就像没有虚拟机存在的状态。

删除意味着,甚至删除了盒子。因此,您必须再次下载。那是正确的吗?

2 个答案:

答案 0 :(得分:2)

(凯文回答正确,+ 1!我只是为流浪汉提供更多信息)

首先,您需要了解流浪汉的工作原理。

在创建一个无业游民的环境时,您将创建一个无业游民的文件(可以使用命令vagrant init bento/ubuntu-16.04)-Vagrantfile看起来像(减少到最小)

Vagrant.configure("2") do |config|
    config.vm.box = "bento/ubuntu-16.04"
end

当您要增加无业游民(vagrant up)来运行VM时,他将要做的是:

  1. 从互联网上下载bento/ubuntu-16.04框(实际上,这已经是一个虚拟机,它将成为其他虚拟机的基础映像) 下载框后,它会保留在您的$HOME/.vagrant.d/boxes文件夹中,并可用于任何其他Vagrantfile
  2. vagrant将复制该框并在VirtualBox中创建一个VM。您可以打开Virtualbox,然后在可用VM列表中查看该VM。 VM文件将存储在VirtualBox文件夹中。

您可以下载任意数量的盒子并将其存储在.vagrant.d文件夹中,并且可以看到正在运行的可用盒子的列表

$ vagrant box list

您可以通过运行查看流浪者当前管理的VM

$ vagrant global-status

现在要回答您的问题,该命令将对不同级别产生影响:

  • vagrant halt 您理解正确-您可以查看我以前的回答,以进一步阅读In Vagrant which is better out of halt and suspend?

  • vagrant destroy 此命令将销毁所有 VM资源(但不会销毁所有无用的资源),因此销毁了所有VirtualBox VM文件,但未更改该框。 在VM上运行vagrant box list后,可以通过运行vagrant destroy进行检查,所有框保持不变。

  • vagrant remove 此命令会删除(破坏)无用资源,因此,如果您想稍后在基本框中创建新的VM,则需要从Internet重新下载无用的资源。 请注意,创建虚拟机后,您可以删除该框,并且流浪者仍然可以正常工作,因此vagrant remove对VirtualBox资源没有影响,所有虚拟机都保持不变


关于包装盒用法的说明:

  • 您可以在同一个盒子中使用多个版本

    $ vagrant box list
    bento/ubuntu-16.04                      (vmware_desktop, 2.3.0)
    bento/ubuntu-16.04                      (vmware_desktop, 2.3.7)
    
  • 您可以为不同的提供商使用相同版本的Box

    $ vagrant box list
    bento/ubuntu-16.04                      (virtualbox, 201708.22.0)
    bento/ubuntu-16.04                      (vmware_desktop, 2.3.0)
    bento/ubuntu-16.04                      (vmware_desktop, 2.3.7)
    

答案 1 :(得分:1)

欢迎您!这是一个很好的问题。澄清vagrant box remove YOUR_BOX_NAME是为了完全删除诸如hashicorp/precise64之类的框,实际上您必须重新下载该框才能使用它。现在vagrant destroy只是销毁了虚拟机,因此它不会显示在您的管理器中,例如,如果您使用Oracle VM Manager。我希望这可以澄清。