最新发布的 Vagrant 1.6 版本提供了对Docker 开发环境的支持。此前,Vagrant 支持的虚拟化环境有VirtualBox、VMware 和AWS 等。
本次更新后,Vagrant 用户可以将Docker container 作为虚拟机管理的操作对象,在自己的工作流中使用。Docker provider 支持来自Dockerfiles 的容器(创建新容器的场景)以及来自 Docker Index 的 repo。Docker Index 目前已经积累了大量预配置的 repo,包括官方的 Ubuntu、CentOS 和 Fedora 系统镜像,以及预装了 MySQL、Java 或 MongoDB 环境的系统。
新版 Vagrant 还包含了两个新指令:docker-logs 用于展示容器的日志,docker-run 用于在容器中执行指定的命令。在对 Linux containers 支持不佳的 OS X 和 Windows 等环境上,Vagrant 的做法是自动将容器跑在一个代理 Linux 虚机上并帮用户自动管理,用户无需专门为此进行安装配置。
随着 Docker 逐渐迈向 1.0 版,越来越多的工具开始支持 Docker。就在几周前,红帽刚刚宣布了几个跟 Linux container 有关的新项目,包括流式应用交付以及基于 Docker 的跨裸机、虚机、私有云和公有云的系统管理体系。Google 基础架构部副总裁 Eric Brewer 对 Linux container 做了如下评论:
Google 的生产环境已经在大量使用 Linux 应用容器。Linux 容器的运行时隔离以及部署的灵活性都非常出色,既减少了管理分布式应用的复杂度,又增加了我们整体的运维效率。
Vagrant 1.6 还加入了一些其他方面的新特性,其中有两点也很值得关注:
- Windows 客户机:在 Vagrant 1.6 中,用户可以在 Vagrant 环境中(VirtualBox、Hyper-V、EC2 等)使用 PowerShell 脚本、Chef、Puppet 等工具来为 Windows 客户机进行软件的安装配置。Windows 客户机上的 vagrant rdp 相当于 Linux 上的 vagrant ssh,用户可以用该指令对 Windows 环境进行单命令的远程操作。微软 OpenTech 公司专门提供了一个内含 Windows 评估版的 Vagrant Hyper-V 镜像。
- 全局状态控制:Vagrant 1.6 引入了 global-status 指令,该指令可以展示本机系统下所有已创建的 Vagrant 环境的状态。在全局控制下,你可以通过每一个 Vagrant 环境的唯一识别码(uid)从任意目录下对该环境进行管理,而无需先进入该 Vagrantfile 所在的目录。该命令可以进行所有 Vagrant 操作,包括销毁、启动、挂起等。
此外,新版 Vagrant 还引入了一个 vagrant version 指令,该指令可以显示你当前的 Vagrant 版本,还可以在有新版本的时候提醒你升级。另外,Vagrant 1.6 中的 Vagrantfile 可以搭载一条信息,该信息会在 vagrant up 后显示出来。另外,新版 Vagrant 还支持用 LZMA 格式对镜像进行压缩。
完整更新日志见 Github 上的 Changelog 。
评论