镜像
vagrant是使用一个基础的镜像来快速克隆出虚拟机,而不是从零开始创建这种缓慢和乏味的方法来创建虚拟机。这些基础镜像在vagrant中被称为“boxes”,指定box是你在创建完Vagrantfile文件后通常要做的第一步操作。
安装一个Box
如果你在入门指南概述页面已经运行了命令,那么在这之前你就已经安装好box了,你就不用再运行下面的命令了。但是你还是值得阅读本章节,它可以让你了解如何管理box。
使用vagrant box add
把box添加进Vagrant中,它将用一个特殊的名字来存储box,以便在更多的Vagrant环境中使用。如果你现在还没有添加box,你下就可以执行下面的命令了:
$ vagrant box add hashicorp/precise64
这个命令将从 HashiCorp's Vagrant Cloud box catalog上面下载名为"hashicorp/precise64"的box,你可以在上面找到和托管box。虽然可以很容易从HashiCorp上面下载box,但你也可以从本地、特定的url等方式来添加box。
这些box对当前用户来说是全局存储的。每个项目都会使用一个box来作为初始项目,并且绝对不会修改基础镜像。这就意味着如果你有两个项目使用我们刚添加的hashicorp/precise64 box的话,则在一台机器中添加文件对另外一台机器没有任何影响。
在上面的命令中,你会注意到这些box是有命名空间的。box分为两部分-用户名和box名-使用斜线分隔。在上面的例子中,用户名是“hashicorp”,box名是“precise64”。你还可以使用URL或本地文件路径的方式指定box,但是入门指南将不会介绍这种方式。
命名空间并不能保证box的规范!一个常见的误区是,命名空间是“ubuntu”就相当于box是Ubuntu官方发布的。这是不对的。例如,vagrant cloud上的命名空间与GitHub上的命名空间分成相似。正如GitHub的技术支持团队无法协助某个人的代码库一样,HashiCorp的技术支持团队也不能帮助第三方发布的box。
使用box
现在box已经被添加进Vagrant中,我们需要将我们的项目配置为基础。打开Vagrantfile并将内容更改为以下内容:
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
end
在这种情况下,“hashicorp / precision64”必须与您用于添加上面box的名称相匹配。 这就是Vagrant如何知道要使用哪个box。 如果之前没有添加box,Vagrant将在运行时自动下载并添加box。
您可以通过指定config.vm.box_version来指定一个具体版本的box,例如:
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
config.vm.box_version = "1.1.0"
end
您也可以直接使用config.vm.box_url指定box的URL:
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
end
在下一节中,我们将介绍Vagrant环境并与之进行交互。
查找更多box
对于本入门指南其他的部分,我们将使用之前添加的"hashicorp / precision64"。但是在看完此入门指南只有不就,你可能会遇到的第一个问题就是“我在哪可以找到更多的box?”
HashiCorp的Vagrant Cloud box目录是找到更多盒子的最佳地点。
HashiCorp的Vagrant云拥有运行于各种平台和技术的免费box。它也有良好的搜索功能,可以让你找到需要的box。
除了找到免费的box之外,如果您打算为您自己的公司或组织创建box,你还可以把自己的box托管在Vagrnat云上面。
下一步
您已经成功下载了第一个Vagrant Box并配置了Vagrantfile来使用这个box。 请继续阅读,了解如何通过SSH访问Vagrant机器。
网友评论