vagrant

BOX镜像

2017-11-01  本文已影响25人  chenggx

镜像


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机器

上一篇下一篇

猜你喜欢

热点阅读