Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
功能特性:
-
支持快速新建虚拟机
-
支持快速设置端口转发
-
支持自定义镜像打包(原始镜像方式、增量补丁方式)
-
基本上日常能用到的基础配置都能快速设置
-
支持开机启动自动运行命令
-
可以自己写扩展
Vagrant 和 Docker 类似,二者都是虚拟化技术。Vagrant 是基于 Virtualbox 的虚拟机来构建你的开发环境,而 Docker 则是基于 LXC(LXC) 轻量级容器虚拟技术。
Vagrant 就是你的开发环境的部署工具;而 docker 是你的运行环境部署工具。
Docker 就是在内核容器技术(Cgroup 和 Namespace)的基础上,提供了一个更高层的控制工具。
Vagrant 软件:Downloads | Vagrant by HashiCorp
Vagrant 官方镜像:Discover Vagrant Boxes - Vagrant Cloud
A list of base boxes for Vagrant - Vagrantbox.es
1、安装 virtualbox
sudo apt install virtualbox-6.0
2、安装 vagrant ubuntu 国内镜像
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/jammy/20221014/jammy-server-cloudimg-amd64-vagrant.box --name ubuntu22_04
3、创建 vagrant 配置文件
vagrant init
4、修改配置文件
vim Vagrantfile
config.vm.box = "base" 修改为 config.vm.box = "ubuntu22_04"
5、启动虚拟机
vagrant up
6、连接虚拟机
vagrant ssh
7、Varant 命令详解
命令 | 说明 | |
vagrant init | 初始化 | |
vagrant up | 启动虚拟机 | |
vagrant halt | 关闭虚拟机 | |
vagrant reload | 重启虚拟机 | |
vagrant ssh | SSH 至虚拟机 | |
vagrant suspend | 挂起虚拟机 | |
vagrant resume | 唤醒虚拟机 | |
vagrant status | 查看虚拟机运行状态 | |
vagrant destroy | 销毁当前虚拟机 |
8、Varant box 命令详解
命令 | 说明 | |
vagrant box add | 添加 box 到列表 | |
vagrant box list | 展示所有安装到 Vagrant 的 boxes | |
vagrant box prune | 删除已安装box的老旧版本 | |
vagrant box remove NAME | 从 Vagrant 中删除匹配指定名字的 box | |
vagrant box repackage NAME PROVIDER VERSION | 打包指定的 box 到当前文件夹,可用于重新发布。指定 box 的名字、提供者、版本号需要可通过 vagrant box list 命令检索到。 当你添加一个 box 时,Vagrant 会打开它并内部存储,原始的 .box 文件是不被保留的。此命令是用于将已安装的 box 重新打包为 .box 文件。 | |
vagrant box update | 用于存在可用更新时更新当前 Vagrant 环境中的box,也可以通过 –box 指定单独要更新的 box。 |
(SAW:Game Over!)