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代替。