所以我在流浪时是一个初学者。在浏览与之相关的在线内容和文档时,我遇到了3个无所适从的命令,即“销毁”,“删除”和“停止”。有人可以明确他们会做什么吗?
我知道: DESTROY:此命令停止正在运行的Vagrant正在管理的计算机,并销毁在计算机创建过程中创建的所有资源。运行此命令后,您的计算机应保持干净状态,就好像您从未首先创建来宾计算机一样。
HALT:此命令关闭Vagrant正在管理的运行计算机。
删除:此命令从Vagrant中删除与给定名称匹配的框。那么这是否从硬盘驱动器中取出盒子?
我无法想象这些命令之间的区别。 我的感觉是停止就像关闭VM。资源仍然分配给它。 破坏就像没有虚拟机存在的状态。
删除意味着,甚至删除了盒子。因此,您必须再次下载。那是正确的吗?
答案 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时,他将要做的是:
bento/ubuntu-16.04
框(实际上,这已经是一个虚拟机,它将成为其他虚拟机的基础映像)
下载框后,它会保留在您的$HOME/.vagrant.d/boxes
文件夹中,并可用于任何其他Vagrantfile 您可以下载任意数量的盒子并将其存储在.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。我希望这可以澄清。