Multipass一款更轻量级的虚拟机
概述
Multipass 是一个轻量虚拟机管理器,是由 Ubuntu 运营公司 Canonical 所推出的开源项目。运行环境支持 Linux、Windows、macOS。在不同的操作系统上,使用的是不同的虚拟化技术。在 Linux 上使用的是 KVM、Window 上使用 Hyper-V(家庭版没有)、macOS 中使用 HyperKit 以最小开销运行VM,支持在笔记本模拟小型云,这里以win11专业版安装为例。
安装
1.打开官网:https://multipass.run/,下载windows安装包。
2.双击exe文件进行安装,默认使用Hyper-V,安装完成后打开命令行工具,执行 multipass --version 可以查看版本。
3.命令行工具执行 multipass find 可以查看可用的 Ubuntu 镜像列表,执行 multipass launch -n vm01 -c 1 -m 1G -d 10G 命令,下载最新版的 Ubuntu 镜像并运行,初次创建时需要下载 Ubuntu 镜像,参数说明:
-n, --name: 名称
-c, --cpus: cpu核心数, 默认: 1
-m, --mem: 内存大小, 默认: 1G
-d, --disk: 硬盘大小, 默认: 5G
4.创建完成后使用multipass list可以查看虚拟机列表:
5.通过 multipass info vm01命令,查看当前运行的虚拟机信息,这里记一下ipv4地址,后面有用到,但是重启Multipass后会改变。
6.进入虚拟机有两种方式,都可以打开虚拟机的内部(下面统一称作虚拟机命令工具,外部的称作命令行工具)
- 右键软件图标,点击Open Shell
- 命令行工具执行 multipass shell vm01 命令,显示了虚拟机的一些系统信息以及内存和磁盘的使用情况:
7.虚拟机命令工具中执行 sudo passwd 命令修改虚拟机密码,然后执行 su root 切换到root用户
8.ubuntu 是使用 apt-get 来进行包管理的,首先执行 apt-get update 命令更新一下 apt-get,然后执行 apt-get install nginx 命令安装 nginx
9.安装好 nginx 后,在 /etc/nginx 目录即可看到 nginx 配置信息
10.现在我们可以使用浏览器访问刚才第5步的ipv4地址,可以看到nginx的信息,说明安装成功。
挂/卸载数据卷
1.multipass 提供了和 Docker 一样的挂载数据卷的功能,能够与外部宿主机的文件保持同步,格式是:multipass mount 宿主机目录 实例名:虚拟机目录。例如我们要将D盘下www文件夹和虚拟机的/home/www保持同步,那就在命令行工具执行multipass mount d:/www vm01:/home/www命令,在虚拟机命令工具中可以看到/home多了一个www的文件夹,表示挂载成功,后续可以在d:/www下增加文件,虚拟机的/home/www下也会同步文件。
2.如果以后不需要再挂载了,可以使用multipass umount vm01(容器名)命令卸载。
传输文件
1.格式是:multipass transfer 主机文件 容器名:容器目录
2.假设我们想将index.html文件发送到虚拟机的/home/ubuntu/下,我们需要先在虚拟机命令工具中切换到home目录下,然后执行chmod 777 * 授权home下的所有文件及文件夹,然后在命令行工具切换到index.html所在目录,执行multipass transfer index.html vm01:/home/ubuntu/即可。
删除和释放实例(命令行工具执行)
1.启动实例:multipass start vm01
2.停止实例:multipass stop vm01
3.删除实例(删除后,还会存在):multipass delete vm01
4.释放实例(彻底删除):multipass purge vm01
镜像文件转移
1.因为C盘空间比较珍贵,所以像镜像这么大的文件一般都需要移动到其他盘中。
2.开始-搜索windows工具并打开,选择 Hyper-V 管理器
3.选择要操作的虚拟机实例,然后在右下角的操作中找到“移动”,点击后选择”将虚拟机的所有数据移动到一个位置”,然后选择要放置的文件夹,点击完成即可。
web应用部署
1.因为我们之前将d:/www挂载到了vm01:/home/www/,所以我们直接在d:/www下新建一个demo目录,并在demo目录下新建index.html文件
2.在虚拟机命令工具中切换到 /etc/nginx/conf.d 目录下,新建一个demo.conf文件
3.切换到/sbin下执行 sudo ./nginx -s reload 命令重启nginx,访问:http://172.19.111.157:8099/
4.修改d:/www/demo/index.html中的Hello Multipass为Hello Multipass!字符,刷新浏览器就变过来了,很方便。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?