虛擬機器軟體太多了,出名的莫過於VMware
,VirutlaBox
以及Parallels Desktop
。
我們使用虛擬機器軟體一般有兩種用途:
- 安裝不同於宿主機系統的擁有使用者介面的作業系統,比如Windows安裝桌面版
Ubuntu
,Mac安裝Windows
等,用於日常工作和生活的使用;
這一需求我目前使用Parallels Desktop
來解決,在我本機上安裝了Windows
和Ubuntu
的桌面版。Parallels Desktop
除了貴,沒有其他問題!
- 另一種是便於開發者快速建立和部署虛擬化開發環境(叢集環境),本文推薦的虛擬軟體就是這個作用。
之前我在Windows上都是使用VirtualBox
+Vagrant
的方式快速建立和銷燬虛擬機器。現在我的工作主機換成了M1晶片的Mac,而VirtualBox
並沒有給予適配。
最近發現了一款叫做Multipass
的虛擬機器軟體,重點是,我的M1電腦可以使用!接下來給大家分享一下使用心得。
1. 下載安裝Multipass
Mac下推薦使用brew
安裝Multipass
,免去了點選下載,解壓以及安裝的步驟
brew install --cask multipass
安裝之後,檢視是否安裝成功
➜ ~ multipass version
multipass 1.9.2+mac
multipassd 1.9.2+mac
2. 檢視Multipass支援的映象
➜ ~ multipass find
Image Aliases Version Description
18.04 bionic 20220615 Ubuntu 18.04 LTS
20.04 focal,lts 20220615 Ubuntu 20.04 LTS
21.10 impish 20220609 Ubuntu 21.10
22.04 jammy 20220609 Ubuntu 22.04 LTS
anbox-cloud-appliance latest Anbox Cloud Appliance
charm-dev latest A development and testing environment for charmers
docker latest A Docker environment with Portainer and related tools
minikube latest minikube is local Kubernetes
注意:
Multipass
只提供了Ubuntu
的發行版映象,這對於開發人員開說並不算什麼缺點,至少對我是這樣的
3. 建立虛擬機器
接下來我們選擇需要的映象版本來安裝Ubuntu
例項,這裡以jammy
(映象列表的Aliases
一列)為例
➜ ~ multipass launch jammy
Launched: boss-wallaroo
其中,boss-wallaroo
是Multipass
給jammy
映象例項隨機起的名字,你也可以使用--name
來指定例項名稱。
~ multipass launch jammy --name chanmufeng-ubuntu
Launched: chanmufeng-ubuntu
4. 操作虛擬機器
4.1. 檢視虛擬機器列表
使用multipass info --all
檢視安裝的所有虛擬機器
➜ ~ multipass info --all
Name: chanmufeng-ubuntu
State: Running
IPv4: 192.168.64.3
Release: Ubuntu 22.04 LTS
Image hash: 746fd17e2944 (Ubuntu 22.04 LTS)
Load: 0.02 0.02 0.00
Disk usage: 1.3G out of 4.7G
Memory usage: 162.4M out of 961.9M
Mounts: --
Name: lucky-dog
State: Stopped
IPv4: --
Release: --
Image hash: 746fd17e2944 (Ubuntu 22.04 LTS)
Load: --
Disk usage: --
Memory usage: --
Mounts: --
執行結果表明,我電腦上有了2個例項,分別是chanmufeng-ubuntu
(執行中)、lucky-dog
(停止狀態)。
4.2. 進入虛擬機器,執行命令
執行multipass shell 例項名
進入例項,如果例項未啟動,則會自動啟動
➜ ~ multipass shell lucky-dog
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-37-generic aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sun Jun 19 21:06:43 CST 2022
System load: 0.3203125
Usage of /: 29.8% of 4.77GB
Memory usage: 20%
Swap usage: 0%
Processes: 100
Users logged in: 0
IPv4 address for enp0s1: 192.168.64.2
IPv6 address for enp0s1: fd96:8c7d:a0ba:459d:5054:ff:fea5:1ea3
0 updates can be applied immediately.
Last login: Tue Jun 14 13:41:27 2022 from 192.168.64.1
ubuntu@lucky-dog:~$ ~
然後就可以在lucky-dog
中自由地玩耍了。
4.3. 停止/重啟虛擬機器
# 暫停
➜ ~ multipass stop lucky-dog
# 啟動
➜ ~ multipass start lucky-dog
4.4. 移除例項到“回收站”
使用如下命令刪除例項
➜ ~ multipass delete chanmufeng-ubuntu
delete
命令只是將chanmufeng-ubuntu
例項標記為DELETED
狀態而已,相當於放到了回收站,但是本身依然存在。
使用list
命令看一下
➜ ~ multipass list
Name State IPv4 Image
chanmufeng-ubuntu Deleted -- Not Available
lucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS
如果後悔了,可以使用recover
命令進行撤銷
➜ ~ multipass recover chanmufeng-ubuntu
再次使用list
命令看一下
➜ ~ multipass list
Name State IPv4 Image
chanmufeng-ubuntu Stopped -- Not Available
lucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS
4.5. 徹底刪除例項
這一步相當於從“回收站”徹底刪除,當然了,前提是例項必須已經被放在了“回收站”。
➜ ~ multipass delete chanmufeng-ubuntu
➜ ~ multipass purge
➜ ~ multipass list
Name State IPv4 Image
lucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS
5. 其他進階功能
除了以上基本功能,Multipass
還提供其他進階功能,本文只是提一嘴,更多細節,大家訪問官網檢視一下文件即可。
5.1. 自定義硬體配置
-
可以自定義CPU核心數、硬碟大小以及記憶體大小等引數
-
自定義網路卡配置和DNS配置
5.2. 快速配置環境
虛擬機器功能給我們帶來的好處就是對於例項,我們想建就建,想刪就刪。
可是刪了之後重新建立,難免很多軟體和工具需要重新進行配置,Mutipass
提供了--cloud-init
對容器進行初始化配置。
➜ ~ multipass launch --name ubuntu --cloud-init config.yaml
config.yaml
是初始化配置檔案,內容如下:
runcmd:
- curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
- sudo apt-get install -y nodejs
runcmd
可以指定容器首次啟動時執行的命令
5.3. 搭配VirtualBox
當然,這個功能不適合M1,但是在其他平臺上搭配VirtualBox
可以實現和Vagrant
同樣的效果。
通過VirtualBox
對Multipass
虛擬機器進行視覺化操作。
還有其他的一些功能需要讀者朋友們自己發掘一下了,更多細節參見官網。