VirtualBox和 Vagrant

  • VirtualBox 是一款开源的虚拟化软件,用于在计算机上创建和运行虚拟机,可以模拟多种操作系统。
  • Vagrant 是一个虚拟化环境管理工具,它提供了一个简单的命令行界面来配置和管理虚拟机,主要是与 VirtualBox 一起使用。

下面我会介绍 VirtualBox 和 Vagrant 的安装、配置和基本使用方法。


1. 安装 VirtualBox 和 Vagrant

步骤 1:安装 VirtualBox
  1. 下载 VirtualBox

    • 访问 VirtualBox 官方网站,选择对应操作系统版本(Windows、macOS 或 Linux)的安装包并下载。
  2. 安装 VirtualBox

    • 双击下载的安装文件并按照提示完成安装。安装完成后,你可以通过 VirtualBox 的图形界面来管理虚拟机。
步骤 2:安装 Vagrant
  1. 下载 Vagrant

    • 访问 Vagrant 官方网站,下载适用于你操作系统的安装包。
  2. 安装 Vagrant

    • 与 VirtualBox 类似,运行安装包并按提示安装。
  3. 验证安装

    • 打开终端(Windows 用户可以使用 PowerShell 或命令提示符),运行以下命令以确保 Vagrant 已正确安装:
    vagrant --version
    

2. Vagrant 和 VirtualBox 的基本使用

步骤 1:创建一个 Vagrant 项目
  1. 创建一个新的项目目录:

    mkdir vagrant-test
    cd vagrant-test
    
  2. 初始化一个新的 Vagrant 配置文件:

    vagrant init
    

    这将会在当前目录下创建一个 Vagrantfile,用于定义虚拟机的配置。

步骤 2:编辑 Vagrantfile
  • 打开 Vagrantfile 文件,你会看到一个基本的配置模板,包含了各种配置选项。
  • 修改 Vagrantfile 文件,选择你想要使用的虚拟机镜像(也称为 “box”)。例如,我们可以使用 Ubuntu 20.04 的镜像:
    Vagrant.configure("2") do |config|config.vm.box = "ubuntu/focal64"
    end
    

Vagrant 通过远程镜像仓库(如 Vagrant Cloud)下载这些镜像。

步骤 3:启动虚拟机
  • 启动并创建虚拟机:

    vagrant up
    

    Vagrant 将会自动下载你在 Vagrantfile 中定义的 box,并通过 VirtualBox 创建并启动虚拟机。

  • 检查虚拟机的状态:

    vagrant status
    
步骤 4:连接到虚拟机
  • 使用 SSH 连接到启动的虚拟机:
    vagrant ssh
    

你现在已经进入了虚拟机的命令行,能够与虚拟机交互,就像操作物理机一样。

步骤 5:暂停、重启或销毁虚拟机
  • 暂停虚拟机(保存当前状态,稍后可以恢复):

    vagrant suspend
    
  • 重启虚拟机

    vagrant reload
    
  • 销毁虚拟机(删除虚拟机):

    vagrant destroy
    

3. Vagrant 的高级配置

共享文件夹

你可以将主机与虚拟机之间的文件夹同步,使得两者可以轻松共享数据。编辑 Vagrantfile,添加如下配置:

Vagrant.configure("2") do |config|config.vm.box = "ubuntu/focal64"config.vm.synced_folder "./data", "/vagrant_data"
end
  • ./data 是主机上的文件夹路径,/vagrant_data 是虚拟机中的路径。
  • 当虚拟机启动时,这两个文件夹将自动同步。
网络配置
  1. 端口转发:将主机的某个端口映射到虚拟机中的端口。例如,将主机的 8080 端口映射到虚拟机的 80 端口:

    Vagrant.configure("2") do |config|config.vm.box = "ubuntu/focal64"config.vm.network "forwarded_port", guest: 80, host: 8080
    end
    
  2. 私有网络:虚拟机与主机在同一个私有网络中,可以通过 IP 地址直接访问虚拟机。

    Vagrant.configure("2") do |config|config.vm.box = "ubuntu/focal64"config.vm.network "private_network", ip: "192.168.33.10"
    end
    
  3. 公共网络:虚拟机将使用主机的网络接口,获得与主机相同网络的 IP 地址(可能是 DHCP 分配的)。

    Vagrant.configure("2") do |config|config.vm.box = "ubuntu/focal64"config.vm.network "public_network"
    end
    
多虚拟机配置

你可以在 Vagrantfile 中定义多个虚拟机。如下配置了两个虚拟机:

Vagrant.configure("2") do |config|config.vm.define "web" do |web|web.vm.box = "ubuntu/focal64"web.vm.network "private_network", ip: "192.168.33.10"endconfig.vm.define "db" do |db|db.vm.box = "ubuntu/focal64"db.vm.network "private_network", ip: "192.168.33.11"end
end
  • 启动所有虚拟机:
    vagrant up
    

4. Vagrant 的插件

Vagrant 通过插件扩展功能,你可以安装不同的插件来增强 Vagrant 的功能。例如,安装 Vagrant 的 vbguest 插件来自动更新 VirtualBox 客户端增强功能:

vagrant plugin install vagrant-vbguest

5. 总结

  • VirtualBox 是虚拟化软件,提供了在物理机上创建和运行虚拟机的能力。
  • Vagrant 是一个虚拟机管理工具,主要与 VirtualBox 配合使用,它简化了虚拟机的创建、配置和管理。
  • 通过 Vagrant,你可以快速设置多个虚拟机、共享文件夹、网络配置,甚至可以用代码版本控制虚拟机配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/59552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用Java爬虫“采集”商品订单详情的编程旅程

在这个数据驱动的世界里,如果你不是数据,那么你一定是在收集数据。就像蜜蜂采集花粉一样,我们程序员也需要采集数据,以便分析、优化和做出明智的决策。今天,我们就来聊聊如何使用Java编写一个爬虫,这个爬虫…

执行flink sql连接clickhouse库

手把手教学,flink connector打通clickhouse大数据库,通过下发flink sql,来使用ck。 组件版本jdk1.8flink1.17.2clickhouse23.12.2.59 1.背景 flink官方不支持clickhouse连接器,工作中难免会用到。 2.方案 利用GitHub大佬提供…

Python数据分析NumPy和pandas(三十二、数据拆分-应用-合并)

最常用的 GroupBy 方法是 apply,apply 将正在操作的对象拆分为多个片段,在每个片段上调用传递给它函数,然后尝试连接这些片段。 还是用前面的小费数据集tips.csv,它的内容如下图: 假设我们想按smoker进行分组并选择前…

【C++】字符串相乘

1.题目 2.代码 介绍一种比较简单的方法,就是先将字符串逆序,然后取出其中每一位的数相乘、相加。最后再考虑进位问题。 class Solution { public:string multiply(string num1, string num2) {//先排除边界情况,防止输出"00000...&quo…

认证鉴权框架SpringSecurity-1--概念和原理篇

1、基本概念 Spring Security 是一个强大且高度可定制的框架,用于构建安全的 Java 应用程序。它是 Spring 生态系统的一部分,提供了全面的安全解决方案,包括认证、授权、CSRF防护、会话管理等功能。 2、认证、授权和鉴权 (1&am…

Android 项目依赖库无法找到的解决方案

目录 错误信息解析 解决方案 1. 检查依赖版本 2. 检查 Maven 仓库配置 3. 强制刷新 Gradle 缓存 4. 检查网络连接 5. 手动下载依赖 总结 相关推荐 最近,我在编译一个 Android 老项目时遇到了一个问题,错误信息显示无法找到 com.gyf.immersionba…

Vue全栈开发旅游网项目(11)-用户管理前端接口联调

联调基本步骤 1.阅读接口文档 2.配置接口地址 3.使用axios获取数据 4.将数据设置到模型层 1.发送验证码联调 1.1 配置接口地址 文件地址:src\utils\apis.js //系统相关的接口 const SystemApis {sliderListUrl:apiHost"/system/slider/list/",//发送…

320页PDF | 集团IT蓝图总体规划报告-德勤(限免下载)

一、前言 这份报告是集团IT蓝图总体规划报告-德勤。在报告中详细阐述了德勤为某集团制定的全面IT蓝图总体规划,包括了集团信息化目标蓝图、IT应用规划、数据规划、IT集成架构、IT基础设施规划以及IT治理体系规划等关键领域,旨在为集团未来的信息化发展提…

蓝桥杯c++算法学习【2】之搜索与查找(九宫格、穿越雷区、迷宫与陷阱、扫地机器人:::非常典型的必刷例题!!!)

别忘了请点个赞收藏关注支持一下博主喵!!! 关注博主,更多蓝桥杯nice题目静待更新:) 搜索与查找 一、九宫格 【问题描述】 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三 …

Springboot校园失物招领平台

Springboot校园失物招领平台 Springboot校园失物招领平台

C++(Qt)软件调试---符号转换工具cv2pdb (24)

C(Qt)软件调试—符号转换工具cv2pdb (24) 文章目录 C(Qt)软件调试---符号转换工具cv2pdb (24)[toc]1、概述🐜2、下载cv2pdb🪲3、qt程序使用cv2pdb🦧1.1 方法1:命令行1.2 方法2&#…

基于Java Springboot宠物流浪救助系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA 数据库:MySQL…

My_SQL day3

知识点:约束 1.dafault 默认约束 2.not null 非空约束 3.unique key 唯一约束 4.primary key 主键约束 5.anto_increment 自增长约束 6.foreign key 外键约束 知识点:表关系 1.一对一 2.一对多 3.多对多 知识点:约束 1.default 默认约束 …

C++基础:Pimpl设计模式的实现

2024/11/14: 在实现C17的Any类时偶然接触到了嵌套类的实现方法以及Pimpl设计模式,遂记录。 PIMPL ( Private Implementation 或 Pointer to Implementation )是通过一个私有的成员指针,将指针所指向的类的内部实现数据进行隐藏。 …

Unity自动LOD工具AutoLOD Mesh Decimator的使用

最近在研究大批量物体生成,由于我们没有专业美术,在模型减面工作上没有人手,所以准备用插件来实现LOD功能,所以找到了AutoLOD Mesh Decimator这个插件。 1,导入插件后,我们拿个实验的僵尸狗来做实验。 空…

爬虫补环境案例---问财网(rpc,jsdom,代理,selenium)

目录 一.环境检测 1. 什么是环境检测 2.案例讲解 二 .吐环境脚本 1. 简介 2. 基础使用方法 3.数据返回 4. 完整代理使用 5. 代理封装 6. 封装所有使用方法 jsdom补环境 1. 环境安装 2. 基本使用 3. 添加参数形式 Selenium补环境 1. 简介 2.实战案例 1. 逆向目…

免费,WPS Office教育考试专用版

WPS Office教育考试专用版,不仅满足了考试需求,更为教育信息化注入新动力。 https://pan.quark.cn/s/609ef85ae6d4

Vue前端开发,组件及组件的使用

什么是组件 组件(Component)是Vue中最强大的功能之一,每个Vue 文件就是一个个独立的组件,组件也可以被其他组件调用,形成嵌套关系,大部分的应用都是由各类不同功能的小组件进行构建,形成一个功能强大的大组件树系统&a…

政务数据治理专栏开搞!

写在前面 忙忙碌碌干了一年政务数据治理的工作,从法人数据到自然人,从交通到地理信息等等,突发想法开一个专栏讲一讲政务数据遇到的问题,以及治理的成效,或许有朋友爱看。 政务数据,又称之为政务数据资源&a…

前端在PC端实现支付思路流程

一.去支付 1.前端点击“去支付”按钮,请求订单详情接口,传递订单的id、订单号给后端和请求支付方式接口 2.后端返回支付信息和支付方式数据 二.弹出支付窗口 接收支付信息和支付方式数据后,前端弹出支付弹窗 三.确认支付 前端无论选择任何…