Vagrant
1.1、Vagrant简介
是什么 ?:an open-source command-line tool that allows you to create, configure, and manage virtual machines ( such asVMWareVirtualBoxDocker)
开发语言:Ruby
官方主页:https://www.vagrantup.com
源码仓库:https://github.com/hashicorp/vagrant
1.2、Vagrant 🆚 Docker

Docker只虚拟化了GNU/Linux, 但是WindowsmacOSFreeBSD等仍然需要运行在各种虚拟机中,Vagrant统一了各种虚拟机的管理,大大方便了开发者。

1.3、通过包管理器安装Vagrant
操作系统包管理器安装命令
WindowsChocolateychoco install -y vagrant
macOSHomeBrewbrew install vagrant
GNU/LinuxHomeBrewbrew install vagrant
aptsudo apt-get install -y vagrant
CentOSyumsudo yum install -y vagrant
dnfsudo dnf install -y vagrant
openSUSEzyppersudo zypper install -y vagrant
Alpine Linuxapksudo apk add vagrant

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm vagrant
Gentoo LinuxPortagesudo emerge vagrant
1.4、Vagrant Cloud

Vagrant Cloud是在线查找虚拟机镜像文件的网站。

虚拟机镜像文件是一种后缀名为.vbox的文件。

对于中国用户来说,虚拟机镜像文件需要我们事先通过工具下载好。因为中国没有对这些虚拟机镜像文件进行镜像, 所以,让vagrant命令自己下载的话,速度极奇慢,有时甚至无法下载。

操作系统vbox
FreeBSDFreeBSD 12.2
FreeBSDFreeBSD 11.4
NetBSDNetBSD 9.1
NetBSDNetBSD 8.2
OpenBSDOpenBSD 6.8
macOSmacOS 10.14
WindowsWindows 10
1.5、vagrant命令

vagrant命令用于管理虚拟机镜像虚拟机

虚拟机是从虚拟机镜像创建的,可以对其进行创建、销毁、启动、停止等操作。

1.5.1、vagrant box add <BOX_NAME> <PATH>

添加一个box并给这个box起一个名字。

执行完这个命令之后,PATH指向的文件就没用了,可以删除。

示例:

vagrant box add OpenBSD-6.8 ~/Downloads/OpenBSD-6.8-virtualbox.box
1.5.2、vagrant box list

列出所有的box

示例:

vagrant box list
vagrant box list -i
1.5.3、vagrant box remove <BOX_NAME>

删除指定BOX_NAMEbox

示例:

vagrant box remove OpenBSD-6.8
vagrant box remove -all
1.5.4、vagrant init <BOX_NAME>

创建一个虚拟机,并在当前目录下生成Vagrantfile配置文件。

示例:

vagrant init    OpenBSD-6.8
vagrant init -f OpenBSD-6.8
1.5.5、vagrant up

启动虚拟机

该命令必须在Vagrantfile配置文件所在的目录中执行。

1.5.6、vagrant ssh

ssh登陆虚拟机

vgrant用户进行登陆,登陆后可以用sudo -i命令切换到root用户下。

1.5.7、vagrant suspend

挂起虚拟机

1.5.8、vagrant resume

从挂起状态中恢复虚拟机

1.5.9、vagrant halt

关闭虚拟机

1.5.10、vagrant destroy

删除虚拟机

1.5.11、vagrant reload

重启虚拟机,会重新加载Vagrantfile

1.5.12、vagrant status

查看当前虚拟机的状态。

1.5.13、vagrant global-status

查看所有虚拟机的状态。