multipass 實戰(zhàn)心得

前言

這玩意說白了就是一個輕量級的虛擬機(jī),允許在Win中啟動一個完整的虛擬機(jī),比VM操作更加的友善更加的Linux,底層用的是Hyper-V。雖然WIndows中有WSL也挺好用的,但是如果需要測試一些比較敏感的Shell腳本或者操作比較底層的庫的話,這玩意玩壞了就重建一個就行了。

我個人比較喜歡用這個系統(tǒng)去構(gòu)建離線的deb的包,或者去測試一些腳本,還有運行一些服務(wù),這樣子我只要將這個虛擬機(jī)關(guān)閉我這個服務(wù)就結(jié)束了,不會影響我的Win系統(tǒng),雖然WSL也能實現(xiàn)這個需求,但是我用下來發(fā)現(xiàn)他們兩的使用場景不太一樣,這個玩意適合運行一些輔助服務(wù),WSL更加適合開發(fā)使用。Docker-Desktop也能運行服務(wù)的說,但是總的來說這里面運行的服務(wù)會更加的穩(wěn)定,不會受到Win的影響,長時間運行的服務(wù)我更喜歡放這個里面運行。

總的來說存在即合理,和WSL有不同的使用場景,看個人需要。

安裝

開啟 Hyper-V

控制面板->程序->啟用或關(guān)閉Windows功能->Hyper-V
將這個選項勾選好,然后點擊確認(rèn),安裝提示操作即可,開啟之后需要重啟電腦。


image.png

安裝 Multipass

Multipass下載地址
下載完畢之后雙擊安裝一直下一步就安裝完畢了。

裝完了需要將存儲地址改一下,如果只有C盤就當(dāng)我沒說這個,如果放C盤,久了會影響Win的運行速度

mkdir "D:\Multipass"
Set-ItemProperty -Path "HKLM:System\CurrentControlSet\Control\Session Manager\Environment" -Name MULTIPASS_STORAGE -Value

安裝完畢之后要重啟一下電腦,否則存儲位置不會變?。。?/strong>

創(chuàng)建網(wǎng)橋供虛擬機(jī)使用(固定IP用)

這一步如果不指定一個網(wǎng)卡的話一些持久運行的虛擬機(jī)就會出現(xiàn)每次啟動IP和網(wǎng)關(guān)地址都會變的問題
我建議是指定一個,后期會比較方便。

# 創(chuàng)建虛擬機(jī)的網(wǎng)絡(luò)
New-VMSwitch -SwitchName "vmnet" -SwitchType Internal

# 創(chuàng)建虛擬網(wǎng)卡
New-NetIPAddress -IPAddress "158.50.0.1" -PrefixLength 24 -InterfaceAlias "vEthernet (vmnet)"

# 開啟NAT
New-NetNat -Name vmnet -InternalIPInterfaceAddressPrefix 158.50.0.0/24

新建虛擬機(jī)

# 創(chuàng)建一個 4核心 4G內(nèi)存 10G存儲的虛擬機(jī) 并將虛擬網(wǎng)絡(luò) vmnet作為第二個網(wǎng)卡
multipass launch --name vm1 --cpus 4 --memory 4G --disk 20G --network name=vmnet,mode=manual

進(jìn)入虛擬機(jī)中

執(zhí)行如下的命令就會進(jìn)入虛擬機(jī)的命令行中

multipass shell vm1 

配置虛擬機(jī)固定IP

啟動的就是一個完整的Ubuntu虛擬機(jī),可以直接使用Ubuntu的方式進(jìn)行IP固定

打開配置文件,并添加如下的配置即可
配置文件地址為 sudo vi /etc/netplan/50-cloud-init.yaml

         eth1: # 網(wǎng)卡名稱,這是固定的
            addresses: [158.50.0.2/24] # IP地址,連接的網(wǎng)卡同段即可,可以選擇0.2~0.253之間
            gateway4: 158.50.0.1 # 網(wǎng)卡的網(wǎng)關(guān)
            nameservers:
                addresses: [114.114.114.114] # DNS地址

修改完畢應(yīng)該是這樣的


image.png

然后執(zhí)行網(wǎng)絡(luò)重啟指令可以

sudo netplan apply

宿主機(jī)端口轉(zhuǎn)發(fā)

虛擬機(jī)安裝之后所有的服務(wù)和端口都只能在本機(jī)進(jìn)行訪問,如果想要外部也訪問這個端口提供的服務(wù),需要將Win的端口做一個轉(zhuǎn)發(fā)

# 開啟WIndows的防火墻
New-NetFirewallRule -DisplayName "Allow TCP 80" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow

# 端口轉(zhuǎn)發(fā)
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=80 connectaddress=158.50.0.2 connectport=80

常用指令集

multipass shell <vm_name> # 進(jìn)入某個虛擬機(jī)
multipass stop <vm_name> # 停止某個虛擬機(jī)
multipass start <vm_name> # 啟動虛擬機(jī)
multipass restart <vm_name> # 重啟虛擬機(jī)
multipass list  # 列出虛擬機(jī)列表
multipass delete <vm_name> # 清理已經(jīng)刪除的虛擬機(jī)
multipass purge # 清理已經(jīng)刪除的虛擬機(jī)
multipass --help # 查看指令幫助
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容