|
; @) U* l! Z' @. y9 V) j+ w- b 对于从事IT技术行业的我们,大家对VMware虚拟机应该都比较熟悉,平时自己搭个学习、测试、开发环境啥的,还真离不开它。
. ]- H; n& Y9 w" X2 j0 Q VMware 虚拟机的功能非常强大,比如:启动快速,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。 - N& |* N( @: \* U+ h
VMware 虚拟机确实是真的好用,但是它是收费的,而且费用还不便宜。所以,今天,给大家介绍一款好用、轻量级的虚拟机产品 Multipass(免费开源)。
# d, x/ m7 q' H" R2 `4 c' v Multipass 简介$ b7 V7 g2 @7 x1 V
Multipass是一款非常轻量级的虚拟机命令管理工具,它支持 Linux、Windows 和 macO S等多平台运行环境。 # V5 ~; Q U# G2 I; E& c/ N6 I! n
% y+ E' }2 i/ W9 I' X/ Q% y Multipass 是由 Ubuntu 运营公司 Canonical 所推出的开源项目。在不同的操作系统上,使用的是不同的虚拟化技术,可以使用最小的资源开销来快速创建你所需要的虚拟机。
- a/ o5 w& \0 S' r0 \+ e& N 对于使用 Linux系统的程序员来讲,Multipass 它还提供一个命令行界面来管理你的Linux实例,非常的方便、易操作与管理。 # w, @& P" c; ?4 N, ^; r& _* E
Multipass 安装0 Q/ l" s" ~9 _7 h' {8 r: o4 J
在官方网站:https://multipass.run/ 选择对应该的系统版本下载即可: $ N5 S3 x7 u( t/ j1 T* c! X
6 M8 ]: y3 D+ c" ]8 \8 a 我这里选择的Windows 版本 , d7 C( e" X9 O r
* V D" n4 x- A2 h3 F) U' ^3 T 安装之后,查看自己安装的版本 $ multipass versionMultipass使用6 `% R2 a1 n8 d% }! g
创建Ubuntu虚拟机: V$ u& |. n. ]% R& U
首先查看可以下载使用的 Ubuntu 镜像 $ multipass find
( d! j' \! v1 @ 运行成功后,可以看到下面的这些镜像列表,包含各种版本的。 Image Aliases Version Description, W# N' R# @. G) g# u. S- B# M# U2 `
snapcraft:core18 20201111 Snapcraft builder for Core 18
. L0 A. r$ ?+ O0 E; Y1 y snapcraft:core20 20201111 Snapcraft builder for Core 205 j, N. L1 ~2 e7 a& C& R
core core16 20200818 Ubuntu Core 164 J# h x3 Y/ [% H
core18 20200812 Ubuntu Core 18& w4 I8 d( H, n ~/ d& S
16.04 xenial 20210128 Ubuntu 16.04 LTS$ V- `* }* \2 F( v
18.04 bionic 20210129 Ubuntu 18.04 LTS
2 T6 s. P7 `% _4 N$ ^* k 20.04 focal,lts 20210223 Ubuntu 20.04 LTS% U8 V+ |5 ^0 h( I5 B0 j! J1 T
20.10 groovy 20210209 Ubuntu 20.10
& _0 A& f$ t# Y# ? appliance:adguard-home 20200812 Ubuntu AdGuard Home Appliance' R6 {; d4 E% g A& M4 ]$ s
appliance:mosquitto 20200812 Ubuntu Mosquitto Appliance
# \/ m7 N3 l1 C# R0 } appliance:nextcloud 20200812 Ubuntu Nextcloud Appliance
& |$ j, e% F" `" Q appliance penhab 20200812 Ubuntu openHAB Home Appliance
$ F9 Y- m! K3 Y& M1 K appliance:plexmediaserver 20200812 Ubuntu Plex Media Server Appliance% L( f# E- ?7 v0 K; D6 O
新建一个容器 $ multipass launch --name dg
: E& u0 P( I8 U* _1 d* W Launched: dg
, W& Y* k2 r; Y% Q 然后下载最新版的 Ubuntu 镜像,之后我们就可以直接使用了。 $ multipass exec dg -- lsb_release -d
2 K8 E6 m! y/ T& I6 ] Description: Ubuntu 18.04.4 LTS
- V; t% s1 H6 y' l2 y 操作虚拟机* t" U3 P/ }8 ~) ^
查看虚拟机列表
2 g% ?! P3 u0 R* b4 S! _1 C 虚拟机创建完成后,查看虚拟机列表。 Name State IPv4 Image
0 ?) a8 N. r A5 Y8 f/ h dg Running 192.168.24.5 Ubuntu 18.04 LTS
7 k+ A( u, L% c; c" [2 h( l0 \ 现在有一台 Ubuntu 18.04 版本的虚拟机在运行,对应的 IP 地址是:192.168.24.5 。
{. t% k: N# z! { 查看虚拟机信息 T9 A6 y a2 D6 E* y+ S
通过命令你可以查看当前运行的虚拟机具体信息。 $ multipass info --all0 w0 f9 e- z+ M% n6 t( t
9 P2 Z/ z$ e6 L0 }0 `6 ?9 A1 [2 x Name: dg
+ L: C7 o3 t$ q( ~. o* M' S" R( A State: Running+ {4 f( v! o* W. P' o1 c
IPv4: 192.168.24.5- O1 ~; M+ `9 x9 @, f
Release: Ubuntu 18.04.4 LTS1 n% D( o& X8 L9 r/ x
Image hash: fe3030933742 (Ubuntu 18.04 LTS)' N) n3 J' ^- u B5 _
Load: 0.00 0.00 0.004 W4 B( q6 {" j2 u& c% Y% I
Disk usage: 1.5G out of 4.7G$ [& x4 z8 |" ^! i0 ~3 h" v$ G
Memory usage: 112.1M out of 985.7M f7 L1 s. T0 S. L0 F& f3 i" }
进入虚拟机 C5 Y- U: K7 C- i. l" r, P
使用下面的命令查看虚拟机的系统配置信息、内存、磁盘等的使用情况。 $ multipass shell dg
# l9 ]7 s, I" s f 如果你不想进入系统内部,也可以通过上述提到的 multipass exce 命令,来操作 Ubuntu 系统。 1 _5 e2 m, u! U4 M c/ Y- B
暂停/重启虚拟机# 暂停( I+ ^# m0 G& [3 W2 M. F
$ multipass stop dg. B5 A4 J, e o( I; F
# 启动
( K& y% L9 Q6 Z8 m" p* | $ multipass start dg) i) f2 Q& K- Q4 q
删除/释放虚拟机
: c& {' M4 q" o6 Y( k 使用 delete 命令 删除虚拟机之后,该虚拟机实际上还是存在了,想要彻底删除则需要释放虚拟机。 # 删除9 _7 h( x: M* m& [5 Y, A8 V5 X8 u
$ multipass delete dg
; k: I; n8 `! |7 i # 释放# e4 p7 x% Q3 a
$ multipass purge dg5 u8 c' a4 N4 F
配置自动化3 n$ N0 x, Y( u6 {
既要保持开发环境和线上环境一致,又要节省部署时间。我们可以使用 --cloud-init 对容器进行初始化配置: $ multipass launch --name ubuntu --cloud-init config.yaml8 v+ N3 F. E0 J
config.yaml 是初始化配置文件,内容如下:. k' L4 \* X4 X
& d; A9 I' R8 ]2 k* d4 W
#cloud-config0 m( ^7 R5 U1 }" j/ T
; a; @( e( ^$ I5 z+ l/ _ runcmd: f# J$ N0 [) Y7 e7 S' [0 ~0 k) |
- curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -9 {. Q+ \4 j- ^" C
- sudo apt-get install -y nodejs
% R/ v; [8 e2 ] - wget https://releases.leanapp.cn/leancloud/lean-cli/releases/download/v0.21.0/lean-cli-x64.deb' O* o& U& @$ M! ~0 V) S
- sudo dpkg -i lean-cli-x64.deb
9 J; p- ^4 \; U runcmd 可以指定容器首次启动时运行的命令。
& [ P: g" x+ @ 总结
+ o* \2 c6 @) l. k) I 经过一段时间的使用,我认为这款工具确实是不错的!比如说我要搞点 linux 的小试验,通过 Multipass 几分钟就能搭起系统来测试。要测试小型数据库集群,也可以通过 Multipass 在本地快速搭建虚拟机集群,很不错!
3 \5 o/ }2 k4 x- l, _5 R: S5 K 唯一美中不足的是 Multipass 只能使用 Ubuntu 镜像,因为这款工具是由 Ubuntu 背后的 Canonical 公司开发开源的。
3 |) P n8 }5 q% D. ]) }( N4 Q
1 t2 W3 B9 r' o) L+ g1 F) o/ R, v! o3 \7 ^
|