vagrant
Vagrant
说明
Vagrant 是一款用来构建虚拟开发环境的工具,它利用了一个声明性配置文件,该文件描述了您的所有软件需求,软件包,操作系统配置,用户等。
安装
起步
设置虚拟机默认存放位置. 管理-全局设定-常规-默认虚拟电脑位置
建议win10 PowerShell操作 win10自带SSH服务
# 选定一个目录进入
cd E:/vbox/centos
# 添加一个box
vagrant box add centos7 centos7.2.box
# 查看当前box列表
vagrant box list
# 初始化vagrant环境配置 此命令执行后当前目录将会生成一个Vagrantfile配置文件
# 命令: vagrant init [name [url]]
# 如果给出第一个参数,它将config.vm.box 在创建的Vagrantfile中预填充设置。
# 如果提供第二个参数,它将config.vm.box_url 在创建的Vagrantfile中预填充设置。
# 不要自己创建这个文件 否则总是导入默认box
vagrant init centos7
Vagrantfile配置
配置项文档 https://docs.vagrantup.com 一些常规的配置如下
Vagrant.configure("2") do |config|
# 使用的box名称
# 如果使用vagrant init命令时给出第一个参数,将自动赋值
config.vm.box = "centos7"
# 配置端口转发 宿主机的80端口将映射到虚拟机的8080端口
config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
# 配置一个私有静态IP
# auto_config 自动配置 如果不设置打包后box可能有问题
config.vm.network "private_network", ip: "192.168.33.10", auto_config: true
# 配置共享文件夹 前提一定要配置私有静态IP
# 用户应确保静态IP不会与同一网络上的任何其他计算机冲突
config.vm.synced_folder "E:/workspace", "/home/www"
# 配置虚拟机硬件参数
config.vm.provider "virtualbox" do |vb|
# # 启动时是否显示GUI界面
# vb.gui = true
# 虚拟机名称
vb.name = "cenots77"
# cpu数
vb.cpus = 2
# # 内存大小
vb.memory = "2048"
end
#
# 启用脚本 例如使用shell脚本安装一些软件
# config.vm.provision "shell", inline: <<-SHELL
# apt-get update
# apt-get install -y apache2
# SHELL
end
同步文件夹问题
- VirtualBox版本过低 可能导致挂载不上
- 缺少增强工具 可能导致挂载不上
sudo apt-get install virtualbox-guest-utils #安装增强工具
vagrant reload #重启
- WEB服务器配置 可能导致文件不能及时更新
https://www.vagrantup.com/docs/synced-folders/virtualbox.html
启动
# 启动Vagrant环境
vagrant up
# 进入虚拟机
vagrant ssh
# 切换超级管理员 默认密码是vagrant
su
# 退出 CTRL+D
# 重启
vagrant reload
# 挂起 类似睡眠
vagrant suspend
# 暂停 类似关机 + 保留硬盘数据
vagrant halt
# 销毁 关机 + 删除硬盘数据
vagrant destroy
# 查看虚拟机状态
vagrant status
打包
打包前建议关掉Vagrantfile中关于网络配置的部分或者启用自动配置,否则连不上网络
vagrant package [name|id]
可选项
# 虚拟机名字
--base NAME
# 文件名字 默认叫package.box
--output NAME
# 其他文件一起打包 比如Vagrantfile中引用的脚本文件
--include x,y,z
# Packages a Vagrantfile with the box, that is loaded as part of the Vagrantfile load order when the resulting box is used.
--vagrantfile FILE
注意没网情况
Vagrant执行“vagrant box add“报“An error occurred while downloading the remote file”错误
注意使用绝对路径
删除curl
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通