virtualbox+vagrant学习-5-Boxes-1-简介

时间:2023-03-09 20:04:07
virtualbox+vagrant学习-5-Boxes-1-简介

Boxes

boxes是vagrant环境的包格式。在vagrant支持的任何平台上,任何人都可以使用一个box来创建一个相同的工作环境。
vagrant box实用程序提供了管理boxes的所有功能。有关vagrant box命令的更多信息,请参阅文档。
使用box的最简单方法是从公共可用的vagrant box目录中添加一个box。你也可以在这个网站上添加和分享你自己定制的box。
box还支持版本控制,以便使用Vagrant的团队成员可以轻松更新底层box,创建box的人员可以推送修复并有效地沟通这些修复。

1.Discovering Boxes发现boxes

找到boxes最简单的方法是在公共vagrant box目录中查找与你的用例匹配的box。目录中包含了大多数主要的操作系统和基础,以及一些特殊的box,可以让你快速地使用LAMP堆栈、Ruby、Python等启动和运行。
公共目录上的box与许多不同的provider一起工作。无论你是使用vagrant与虚拟机,VMware, AWS等,你都应该能够找到一个你需要的box。
从目录中添加一个box非常简单。每个box显示如何添加它的说明,但它们都遵循相同的格式:

$ vagrant box add USER/BOX

例如:

vagrant box add hashicorp/precise64

并且能够快速地在vagrant环境中进行初始化:

vagrant init hashicorp/precise64

⚠️命名空间不能保证规范boxes!

一个常见的误解是像“ubuntu”这样的命名空间代表ubuntuboxes的标准空间。这是不真实的。例如,vagrant云上的命名空间的行为与GitHub上的命名空间非常相似。正如GitHub的支持团队无法帮助解决某人存储库中的问题一样,HashiCorp的支持团队也无法帮助处理第三方发布的boxes。

2.Official Boxes官方boxes

1)HashiCorp

HashiCorp(vagrant的制造者)发布了一个基本的ubuntu12.04(32位和64位)box,可以用于最小的用例。它是高度优化的,规模较小,并包括对Virtualbox和VMware的支持。你可以这样使用它:

$ vagrant init hashicorp/precise64

就能够得到相应的Vagrantfile文件

或者你可以如下更新你的Vagrantfile文件:

Vagrant.configure("") do |config|
config.vm.box = "hashicorp/precise64"
end

2)Bento boxes

对于其他用户,我们推荐Bento boxes。Bento boxes是开放源码的,并为许多供应商(包括VMware、Virtualbox和Parallels)构建。有各种各样的操作系统和可用的版本。
这是仅有的两个官方推荐的boxes集。

⚠️这通常是一个令人困惑的地方,但是Canonical(生产Ubuntu操作系统的公司)在vagrant云上以“Ubuntu”命名空间发布盒子。但是这些框只支持Virtualbox,不能为大多数用户提供理想的体验。如果你遇到这些盒子的问题,请尝试Bento boxes代替。