02 虚拟机搭建
1 VirtualBox
VirtualBox 是一款功能丰富、灵活易用、跨平台且免费的虚拟机软件,非常适合个人开发者、学生、IT 从业者以及任何需要在单一硬件上运行多个操作系统的用户。
版本:7.2
2 Vagrant
Vagrant 是一款由 HashiCorp 公司开发的开源工具,用于快速、简单、可重复地创建和管理轻量级、可移植、自配置的开发环境。
简单来说,Vagrant 让你能够通过编写一个简单的配置文件(Vagrantfile),快速地在你的本地机器(如 Windows、macOS 或 Linux)上启动一个虚拟机(通常是 VirtualBox、VMware 等作为底层),并且这个虚拟机是标准化、一致、自动配置好的,非常适合团队协作开发和开发环境一致性管理。
🤖 Vagrant 与 VirtualBox 的关系
- VirtualBox 是一个虚拟化平台,负责实际的虚拟机创建与运行。
- Vagrant 是一个环境管理工具,它通过调用 VirtualBox(或其他 Provider)来帮你自动化地创建、配置、管理虚拟机。
- 你可以把 VirtualBox 看作是“引擎”,Vagrant 是“驾驶舱和自动化导航系统”。
网址:developer.hashicorp.com/vagrant
版本:2.4.9
2.1 镜像仓库
地址:portal.cloud.hashicorp.com/vagrant/dis…
我选择了:ubuntu/jammy64,原因:
- 镜像名称(Vagrant 中使用): ubuntu/jammy64
- 对应的 Ubuntu 官方版本: Ubuntu 22.04 LTS (Jammy Jellyfish)
- 发布时间: 2022 年 4 月
- 支持周期(LTS): 官方支持至 2027 年 4 月(5 年安全更新)
- 架构: 64 位(amd64)
- 包管理器: APT(非常成熟、易用)
- Vagrant 官方镜像: ✅ 是 Vagrant Cloud 的官方维护镜像,稳定可靠
2.2 操作步骤
1)下载 ubuntu/jammy64 的 box 到本地
2)将本地的 box 文件导入到 Vagrant 中
vagrant box add my-ubuntu22 ./jammy-server-cloudimg-amd64-vagrant.box
my-ubuntu22:是你给这个 box 起的本地名称(自定义,可随便取,比如 ubuntu22-local、jammy-box等),之后在 Vagrantfile 里会用到它;
3)查看已添加的 box
vagrant box list
4)初始化 Vagrantfile,指定你本地的 box 名称
vagrant init my-ubuntu22
这会在当前目录生成一个 Vagrantfile,内容大致如下:
5)启动虚拟机
vagrant up
6)登录虚拟机
vagrant ssh
2.3 网络设置
2.3.1 虚拟机原有IP
ip a
lo(Loopback)是 Linux 系统默认的虚拟回环接口,仅用于本机内部进程间通信(比如本地服务访问 127.0.0.1),不依赖物理网卡,是系统网络的基础组件。
enp0s3 是物理网卡接口(常见于虚拟机或物理机,命名规则:en=Ethernet 以太网,p0=PCI 总线 0,s3= 插槽 3),用于连接外部网络(如路由器、交换机),是本机与其他设备通信的核心接口。
2.3.2 为 Vagrant 设置 私有网络
1 编辑你的 Vagrantfile
config.vm.network "private_network", ip: "192.168.56.10"
📌 这里的 192.168.56.10是你为虚拟机手动指定的一个私有局域网 IP,一般选用 192.168.56.x这个网段(VirtualBox 默认支持的私有网络段)。
2 重启虚拟机使配置生效
vagrant reload
2.3.3 快速测试是否可以从宿主机访问虚拟机
- 在虚拟机中启动一个服务,比如 Python 简单 HTTP 服务:
python3 -m http.server 8000
- 然后在你的 宿主机浏览器 或使用 curl访问: