轻量级虚拟机,横空出世!
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;"><span style="color: green;">对于从事IT技术行业的我们,大家对VMware虚拟机应该都比较熟悉,平时自己搭个学习、测试、开发环境啥的,还真离不开它。</span></p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">VMware 虚拟机的功能非常强大,比如:启动快速,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">VMware 虚拟机确实是真的好用,但是它是收费的,而且费用还不便宜。所以,今天,给大家介绍一款好用、轻量级的虚拟机产品 Multipass(免费开源)。</p>
<h1 style="text-align: left; margin-bottom: 10px;">Multipass 简介</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">Multipass是一款非常轻量级的虚拟机命令管理工具,它支持 Linux、Windows 和 macO S等多平台运行环境。</p>
<div style="text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/4ca97c5b59cb4627a7f367ed1b1b0791~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1704568570&x-signature=FURIGgtgNVSk4w8dMPl7Ewyg5Z8%3D" style="width: 100%; margin-bottom: 20px;"></div>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">Multipass 是由 Ubuntu 运营公司 Canonical 所推出的开源项目。在不同的操作系统上,使用的是不同的虚拟化技术,可以使用最小的资源开销来快速创建你所需要的虚拟机。</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">对于使用 Linux系统的程序员来讲,Multipass 它还提供一个命令行界面来管理你的Linux实例,非常的方便、易操作与管理。</p>
<h1 style="text-align: left; margin-bottom: 10px;">Multipass 安装</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">在官方网站:https://multipass.run/ 选择对应该的系统版本下载即可:</p>
<div style="text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/c9db8b8a952a4b8496501cda71658345~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1704568570&x-signature=CCm0CTvNR5KmI3HFSlMqPIU5msk%3D" style="width: 100%; margin-bottom: 20px;"></div>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">我这里选择的Windows 版本</p>
<div style="text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/71db8fb07bfb426d8ff9064fc5d5ce37~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1704568570&x-signature=qwyEW6qmkHwvUm9xsC30IL7VCFo%3D" style="width: 100%; margin-bottom: 20px;"></div>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">安装之后,查看自己安装的版本</p>$ multipass version<h1 style="text-align: left; margin-bottom: 10px;">Multipass使用</h1>
<h1 style="text-align: left; margin-bottom: 10px;">创建Ubuntu虚拟机</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">首先查看可以下载使用的 Ubuntu 镜像</p>$ multipass <span style="color: green;">find</span>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">运行成功后,可以看到下面的这些镜像列表,包含各种版本的。</p><span style="color: green;">Image</span> <span style="color: green;">Aliases</span> <span style="color: green;">Version</span> <span style="color: green;">Description</span>
<span style="color: green;">snapcraft:core18</span> <span style="color: green;">20201111</span> <span style="color: green;">Snapcraft</span> <span style="color: green;">builder</span> <span style="color: green;">for</span> <span style="color: green;">Core</span> <span style="color: green;">18</span>
<span style="color: green;">snapcraft:core20</span> <span style="color: green;">20201111</span> <span style="color: green;">Snapcraft</span> <span style="color: green;">builder</span> <span style="color: green;">for</span> <span style="color: green;">Core</span> <span style="color: green;">20</span>
<span style="color: green;">core</span> <span style="color: green;">core16</span> <span style="color: green;">20200818</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">Core</span> <span style="color: green;">16</span>
<span style="color: green;">core18</span> <span style="color: green;">20200812</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">Core</span> <span style="color: green;">18</span>
<span style="color: green;">16.04</span> <span style="color: green;">xenial</span> <span style="color: green;">20210128</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">16.04</span> <span style="color: green;">LTS</span>
<span style="color: green;">18.04</span> <span style="color: green;">bionic</span> <span style="color: green;">20210129</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">18.04</span> <span style="color: green;">LTS</span>
<span style="color: green;">20.04</span> <span style="color: green;">focal,lts</span> <span style="color: green;">20210223</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">20.04</span> <span style="color: green;">LTS</span>
<span style="color: green;">20.10</span> <span style="color: green;">groovy</span> <span style="color: green;">20210209</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">20.10</span>
<span style="color: green;">appliance:adguard-home</span> <span style="color: green;">20200812</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">AdGuard</span> <span style="color: green;">Home</span> <span style="color: green;">Appliance</span>
<span style="color: green;">appliance:mosquitto</span> <span style="color: green;">20200812</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">Mosquitto</span> <span style="color: green;">Appliance</span>
<span style="color: green;">appliance:nextcloud</span> <span style="color: green;">20200812</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">Nextcloud</span> <span style="color: green;">Appliance</span>
<span style="color: green;">appliance:openhab</span> <span style="color: green;">20200812</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">openHAB</span> <span style="color: green;">Home</span> <span style="color: green;">Appliance</span>
<span style="color: green;">appliance:plexmediaserver</span> <span style="color: green;">20200812</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">Plex</span> <span style="color: green;">Media</span> <span style="color: green;">Server</span> <span style="color: green;">Appliance</span>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">新建一个容器</p>$ multipass launch <span style="color: green;">--name dg</span>
Launched: dg
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">然后下载最新版的 Ubuntu 镜像,之后我们就可以直接使用了。</p><span style="color: green;">$</span> <span style="color: green;">multipass</span> <span style="color: green;">exec</span> <span style="color: green;">dg</span> <span style="color: green;">--</span> <span style="color: green;">lsb_release</span> <span style="color: green;">-d</span>
<span style="color: green;">Description:</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">18.04</span><span style="color: green;">.4</span> <span style="color: green;">LTS</span>
<h1 style="text-align: left; margin-bottom: 10px;">操作虚拟机</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">查看虚拟机列表</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">虚拟机创建完成后,查看虚拟机列表。</p><span style="color: green;">Name</span> <span style="color: green;">State</span> <span style="color: green;">IPv4</span> <span style="color: green;">Image</span>
<span style="color: green;">dg</span> <span style="color: green;">Running</span> 192<span style="color: green;">.168</span><span style="color: green;">.24</span><span style="color: green;">.5</span> <span style="color: green;">Ubuntu</span> 18<span style="color: green;">.04</span> <span style="color: green;">LTS</span>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">现在有一台 Ubuntu 18.04 版本的虚拟机在运行,对应的 IP 地址是:192.168.24.5 。</p>
<h1 style="text-align: left; margin-bottom: 10px;">查看虚拟机信息</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">通过命令你可以查看当前运行的虚拟机具体信息。</p><span style="color: green;">$</span> <span style="color: green;">multipass</span> <span style="color: green;">info</span> <span style="color: green;">--all</span>
<span style="color: green;">Name:</span> <span style="color: green;">dg</span>
<span style="color: green;">State:</span> <span style="color: green;">Running</span>
<span style="color: green;">IPv4:</span> <span style="color: green;">192.168</span><span style="color: green;">.24</span><span style="color: green;">.5</span>
<span style="color: green;">Release:</span> <span style="color: green;">Ubuntu</span> <span style="color: green;">18.04</span><span style="color: green;">.4</span> <span style="color: green;">LTS</span>
<span style="color: green;">Image hash:</span> <span style="color: green;">fe3030933742</span> <span style="color: green;">(Ubuntu</span> <span style="color: green;">18.04</span> <span style="color: green;">LTS)</span>
<span style="color: green;">Load:</span> <span style="color: green;">0.00</span> <span style="color: green;">0.00</span> <span style="color: green;">0.00</span>
<span style="color: green;">Disk usage:</span> <span style="color: green;">1.</span><span style="color: green;">5G</span> <span style="color: green;">out</span> <span style="color: green;">of</span> <span style="color: green;">4.</span><span style="color: green;">7G</span>
<span style="color: green;">Memory usage:</span> <span style="color: green;">112.</span><span style="color: green;">1M</span> <span style="color: green;">out</span> <span style="color: green;">of</span> <span style="color: green;">985.</span><span style="color: green;">7M</span>
<h1 style="text-align: left; margin-bottom: 10px;">进入虚拟机</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">使用下面的命令查看虚拟机的系统配置信息、内存、磁盘等的使用情况。</p>$ multipass shell dg
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">如果你不想进入系统内部,也可以通过上述提到的 multipass exce 命令,来操作 Ubuntu 系统。</p>
<h1 style="text-align: left; margin-bottom: 10px;">暂停/重启虚拟机</h1><span style="color: green;"># 暂停</span>
$ multipass stop dg
<span style="color: green;"># 启动</span>
$ multipass start dg
<h1 style="text-align: left; margin-bottom: 10px;">删除/释放虚拟机</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">使用 delete 命令 删除虚拟机之后,该虚拟机实际上还是存在了,想要彻底删除则需要释放虚拟机。</p><span style="color: green;"># 删除</span>
$ multipass delete dg
<span style="color: green;"># 释放</span>
$ multipass purge dg
<h1 style="text-align: left; margin-bottom: 10px;">配置自动化</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">既要保持开发环境和线上环境一致,又要节省部署时间。我们可以使用 --cloud-init 对容器进行初始化配置:</p>$ multipass launch --name ubuntu --cloud-init config.yaml
config.yaml 是初始化配置文件,内容如下:
<span style="color: green;">#cloud-config</span>
runcmd:
<span style="color: green;"> - </span>curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
<span style="color: green;"> - </span>sudo apt-get install -y nodejs
<span style="color: green;"> - </span>wget https://releases.leanapp.cn/leancloud/lean-cli/releases/download/v0.21.0/lean-cli-x64.deb
<span style="color: green;"> - </span>sudo dpkg -i lean-cli-x64.deb
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">runcmd 可以指定容器首次启动时运行的命令。</p>
<h1 style="text-align: left; margin-bottom: 10px;">总结</h1>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">经过一段时间的使用,我认为这款工具确实是不错的!比如说我要搞点 linux 的小试验,通过 Multipass 几分钟就能搭起系统来测试。要测试小型数据库集群,也可以通过 Multipass 在本地快速搭建虚拟机集群,很不错!</p>
<p style="font-size: 18px; line-height: 40px; text-align: left; margin-bottom: 30px;">唯一美中不足的是 Multipass 只能使用 Ubuntu 镜像,因为这款工具是由 Ubuntu 背后的 Canonical 公司开发开源的。</p>
页:
[1]