当仍然使用机器移除流浪盒时会发生什么?

时间:2017-09-16 14:59:19

标签: vagrant virtualbox

我有大约15个流浪汉机器。这些机器使用CentOS和Ubuntu作为基础盒。当我运行vagrant box list

时,我得到以下输出

centos/7 (virtualbox, 1705.01) centos/7 (virtualbox, 1706.02) centos/7 (virtualbox, 1707.01) centos/7 (virtualbox, 1708.01) geerlingguy/centos7 (virtualbox, 1.2.3) geerlingguy/ubuntu1604 (virtualbox, 1.1.6) laravel/homestead (virtualbox, 3.0.0) puppetlabs/centos-7.2-64-nocm (virtualbox, 1.0.1) ubuntu/precise64 (virtualbox, 20170427.0.0) ubuntu/trusty64 (virtualbox, 20170615.0.0) ubuntu/trusty64 (virtualbox, 20170619.0.0) ubuntu/xenial64 (virtualbox, 20170802.0.0) ubuntu/xenial64 (virtualbox, 20170815.1.0) ubuntu/yakkety64 (virtualbox, 20170202.0.0) ubuntu/zesty64 (virtualbox, 20170412.1.0)

当尝试修剪时,我收到了一些消息,表示正在使用某些盒子,如果我删除该盒子,我的环境将会被破坏。

如果删除所有框,现有机器会发生什么?

我通过使用centos / 7 - 1708.01创建新机器进行测试。

  • 已安装whoisvim
  • 在主文件夹中创建了一个虚拟文件。
  • 停止了机器
  • 已移除vagrant box remove centos/7 --provider virtualbox --box-version 1708.01的复选框。
  • 开始使用vagrant up并且机器启动没有任何问题。

它仍然安装了我安装的软件包和我创建的文件。

我和ubuntu/xenial64做了同样的测试。

  • 使用最新的盒子版本创建了一台机器。
  • 安装了新软件包并触及了几个文件。
  • 停止了机器
  • 删除了最新版本的ubuntu / xenial64
  • 再次启动机器

我仍然可以看到我安装的软件包和文件。

如果删除框不影响现有机器,那么为什么会出现有关环境损坏的消息?

我的理解是,在我使用一个盒子来创建机器后,不管盒子是否存在,因为机器现在处于虚拟盒中。

我试图通过文档但找不到我要查找的信息。 你能解释一下流浪者的整个工作流程吗?

1 个答案:

答案 0 :(得分:1)

你是对的;

基本上当你运行vagrant up时,vagrant正在克隆该框以创建一个新的实例VM。创建此VM后,它没有指向克隆的链接(原始框),因此如果删除该框,则不会影响生成的VM。

如果您需要销毁并重新创建VM,则会遇到问题。

如果你正在使用linked clones VM,它的工作方式会略有不同,在这种情况下,与该框有更强的依赖关系。