您的当前位置:首页正文

BOX镜像

来源:华拓网

镜像


vagrant是使用一个基础的镜像来快速克隆出虚拟机,而不是从零开始创建这种缓慢和乏味的方法来创建虚拟机。这些基础镜像在vagrant中被称为“boxes”,指定box是你在创建完Vagrantfile文件后通常要做的第一步操作。

安装一个Box


使用vagrant box add把box添加进Vagrant中,它将用一个特殊的名字来存储box,以便在更多的Vagrant环境中使用。如果你现在还没有添加box,你下就可以执行下面的命令了:

$ vagrant box add hashicorp/precise64

这些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 = 
end

在下一节中,我们将介绍Vagrant环境并与之进行交互。

查找更多box


对于本入门指南其他的部分,我们将使用之前添加的"hashicorp / precision64"。但是在看完此入门指南只有不就,你可能会遇到的第一个问题就是“我在哪可以找到更多的box?”

除了找到免费的box之外,如果您打算为您自己的公司或组织创建box,你还可以把自己的box托管在Vagrnat云上面。

下一步