【问题标题】:What is the difference between vagrant remove, halt and destroyvagrant remove、halt和destroy有什么区别
【发布时间】:2018-12-05 19:16:35
【问题描述】:

所以我是 vagrant 的初学者。在浏览与之相关的在线内容和文档时,我遇到了 3 个 vagrant 命令,即“销毁”、“删除”和“暂停”。有人能弄清楚他们到底会做什么吗?

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

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

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

我无法想象这些命令的区别。 我觉得停止就像关闭虚拟机一样。资源仍然分配给它。 destroy 就像没有 VM 存在的状态。

remove 的意思是,甚至去掉盒子。所以你必须重新下载它。对吗?

【问题讨论】:

    标签: vagrant


    【解决方案1】:

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

    首先你需要了解 vagrant 的工作原理。

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

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

    当你启动 vagrant (vagrant up) 来运行虚拟机时,它会做的是:

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

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

    $ vagrant box list
    

    通过运行可以看到vagrant当前管理的VM

    $ vagrant global-status
    

    现在回答您的问题,该命令将产生不同程度的影响:

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

    • vagrant destroy 此命令会破坏所有 VM 资源(但不是任何 vagrant 资源),因此所有 VirtualBox VM 文件都被破坏,但盒子保持不变。 在 VM 上运行 vagrant destroy 后,您可以通过运行 vagrant box list 来检查,所有框都保持不变。

    • vagrant remove 此命令删除(销毁)vagrant 资源,因此如果您想稍后针对基本框创建新 VM,则需要从 Internet 重新下载 vagrant。 请注意,创建 VM 后,您可以移除该框,vagrant 仍将正常工作,因此vagrant remove 对 VirtualBox 资源没有影响,所有 VM 保持不变


    盒子使用注意事项:

    • 同一个盒子可以有多个版本

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

      $ 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)
      

    【讨论】:

      【解决方案2】:

      欢迎来到 SO!这是一个很好的问题。澄清vagrant box remove YOUR_BOX_NAME 是为了完全删除一个框,例如hashicorp/precise64,实际上你必须重新下载它才能使用它。现在vagrant destroy 只是破坏了虚拟机,因此它不会出现在您的管理器中,例如如果您使用Oracle VM Manager。我希望这能提供澄清。

      【讨论】:

        猜你喜欢
        • 2013-06-23
        • 1970-01-01
        • 2020-03-02
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 2010-11-09
        • 1970-01-01
        • 2015-09-25
        相关资源
        最近更新 更多