Linux环境下搞定Vagrant那些基础操作和入门技巧分享
- 问答
- 2025-12-25 09:25:18
- 1
整理自网络上的多篇Vagrant入门指南和经验分享,包括但不限于Vagrant官方文档、博客园、CSDN、知乎等平台的技术文章)
好的,咱们就直接开讲,今天聊的就是怎么在Linux系统里,把Vagrant这个工具用起来,说点最实在、最基础的操作和一些能让你少走弯路的小技巧,Vagrant说白了,就是个帮你快速搞出虚拟开发环境的工具,你不用再去虚拟机软件里点点点地配置了,用几句命令就能弄好一个统一的开发机,特别适合团队协作或者自己需要折腾不同项目的时候。
第一步:先把家伙事儿准备好
在你玩Vagrant之前,你得先给它找个“底座”,这个底座就是虚拟化软件,最常见的就是VirtualBox,因为它免费又好用,第一件事,去VirtualBox官网下载对应你Linux发行版的安装包,用包管理器装好,比如在Ubuntu上,你可以用sudo apt install virtualbox,装好VirtualBox之后,再去Vagrant官网下载并安装Vagrant,同样,在Ubuntu下可以用sudo apt install vagrant,装完之后,在终端里输入vagrant --version,如果显示出版本号,那就说明安装成功了。
第二步:初始化你的第一个虚拟机
Vagrant的核心概念是“盒子”(Box),你可以把Box理解成一个虚拟机模板,比如一个装好了Ubuntu系统的模板,Vagrant就是从这些模板来创建虚拟机的。
- 找个地方建工作目录:为你项目创建一个单独的文件夹,比如叫
my_vagrant_project,然后cd进入这个目录,Vagrant会在这个目录下生成配置文件,虚拟机也会跟这个目录关联。 - 初始化Vagrantfile:在项目目录下,运行
vagrant init命令,这个命令会生成一个叫Vagrantfile的配置文件,这个文件就是用Ruby语法写的,但你别怕,就算不懂Ruby,照着改几个参数也能用,通常我们会指定用哪个Box,可以这样初始化:vagrant init ubuntu/focal64,这里的ubuntu/focal64就是一个官方提供的Ubuntu 20.04 LTS的盒子名字,Vagrant会先去本地找,如果找不到就会自动从网上下载。 - 启动虚拟机:配置好(或者先不管,用默认的也行)之后,运行
vagrant up,这时候你就会看到终端开始刷刷地跑日志,Vagrant正在帮你创建并启动虚拟机,第一次运行会下载Box,可能需要点时间,耐心等待就好,看到提示启动成功了,就搞定了一大半。
第三部:连接进去和基本操作
虚拟机跑起来了,你怎么进去操作呢?
- 连接虚拟机:用命令
vagrant ssh,这个命令会直接用默认的密钥方式帮你登录到虚拟机里,用户名默认是vagrant,而且有sudo权限,进去之后,你就可以像操作一台真正的Linux服务器一样为所欲为了。 - 关机:在虚拟机外面(你的Linux主机终端里),运行
vagrant halt,这个命令会温柔地关闭虚拟机,就像正常关机一样。 - 暂停:如果你暂时不用,想节省点资源,可以用
vagrant suspend,这相当于虚拟机的“休眠”,恢复起来比关机重启快。 - 彻底删除:如果你想推倒重来,就用
vagrant destroy。这个命令会删除整个虚拟机,包括里面的所有数据,所以用之前想清楚,不过别担心,Vagrantfile还在,下次vagrant up又会创建一个全新的。
几个超级实用的入门技巧
- 共享文件夹:这是Vagrant最方便的功能之一,你主机上的项目目录(就是有Vagrantfile的那个目录)默认会挂载到虚拟机里的
/vagrant目录下,这样,你在主机上用自己喜欢的编辑器(比如VSCode)写代码,保存后,在虚拟机里就能直接看到变化并运行,超级方便,你可以在Vagrantfile里配置更多的共享文件夹。 - 端口转发:如果你的虚拟机里跑了一个Web服务,比如在80端口监听,你怎么在主机上访问呢?这就需要端口转发,在Vagrantfile里找到
config.vm.network "forwarded_port"这行,取消注释并修改,比如guest: 80, host: 8080,这样,你重启虚拟机后,在主机浏览器里访问localhost:8080,就能访问到虚拟机里的80端口服务了。 - 多虚拟机管理:一个Vagrantfile可以定义多个虚拟机,形成一个集群,这对于搭建分布式环境特别有用,你需要给每个虚拟机定义
config.vm.define块,然后启动指定虚拟机用vagrant up 虚拟机名字,或者vagrant up启动所有。 - provisioning(供应):你肯定不想每次
vagrant destroy之后,都手动进去装一遍软件环境,Vagrant可以在虚拟机初次创建时自动执行脚本,你可以在Vagrantfile里用config.vm.provision来指定一个shell脚本或者用Ansible这样的工具,这样,每次vagrant up或者运行vagrant provision时,它都会自动帮你把环境配置好,真正做到一键部署开发环境。 - 盒子管理:常用的盒子可以提前下载好,用
vagrant box add 盒子名,查看本地已有盒子用vagrant box list,删除不用的盒子用vagrant box remove 盒子名。
最后记住,Vagrantfile就是核心,你的所有自定义配置都在这里,多看看文件里的注释,那本身就是一份很好的说明书,一开始不用追求把所有高级功能都用上,先把最基本的vagrant up, vagrant ssh, vagrant halt用熟练,再慢慢尝试共享文件夹、端口转发,你的效率就会大大提升。

本文由帖慧艳于2025-12-25发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/68085.html
