[推薦] 指令式 ubuntu 虛擬機器管理工具 – Multipass

現在大部分開發都已經走向使用 docker 的方式了,但是有些時候使用虛擬機器來模擬會更加方便 (例如:K8s),比較常見的方式都是使用 VirtualBox 跟 VMWare 來建立虛擬主機,但是步驟會比較繁瑣,而 ubuntu 官方出了指令工具 Multipass,可以像是操作 docker 一樣可以快速建立、啟動與關閉虛擬機器,並且方便的動態配置空間、記憶體與 CPU 數量

介紹

官方網站:https://multipass.run/
原始碼:https://github.com/canonical/multipass

Multipass 是一個輕量方便使用的指令工具,其在不同的作業系統是使用不同的虛擬化技術(Linux 使用 KVM, Windows 使用 Hyper-V 而 macOS 使用 HyperKit),並且可以直接指定安裝的 Ubuntu 版本

安裝

依據不同作業系統輸入指定安裝 Multipass

Ubuntu

sudo snap install multipass

macOS

brew install --cask multipass

或者直接下載 pkg 檔案安裝 https://github.com/canonical/multipass/releases/

使用

Multipass 有許多的指令可以使用,這邊列幾一些比較常使用的指令

並且示範一些指令

可用的命令:

  • delete 刪除機器
  • exec 在機器中執行命令
  • find 列出可以安裝 ubuntu 版本 image
  • get 獲取配置資訊
  • help 查看幫助
  • info 查看機器信息
  • launch 創建並啟動機器
  • list 列出所有機器
  • mount 掛載文件夾到機器
  • purge 清除已刪除的機器
  • recover 恢復已刪除的機器
  • restart 重啟機器
  • set 設置某個配置
  • shell 通過 shell 連接機器
  • start 啟動機器
  • stop 停止機器
  • suspend 暫停機器
  • transfer 在本機和機器之間傳輸檔案或文件
  • umount 移除機器中掛載的文件夾
  • version 查看版本

建立 VM

首先輸入指令查看有哪些 image

multipass find

輸入指令建立 VM (版本 22.04, 2 個虛擬 CPU, 記憶體 2G 硬碟空間 20G)

  • vm-name 改成自己想取的名稱
multipass launch --name <vm-name> 22.04 --cpus 2 --memory 2G --disk 20G

進入 VM

multipass shell <vm-name>

停止 vm

multipass stop <vm-name>

刪除 vm 並清除出空間

multipass delete <vm-name>
multipass purge

對 VM 執行指定指令

可以不用進去機器直接操作某個指令

multipass exec <vm-name> -- <command>

查看 VM 配置

multipass get local.<vm-name>.cpus
multipass get local.<vm-name>.disk
multipass get local.<vm-name>.memory

修改 VM 配置

可以用指令修改機器資源配置 (需先停止機器)

multipass stop <vm-name>
multipass set local.<vm-name>.cpus=4
multipass set local.<vm-name>.disk=60G
multipass set local.<vm-name>.memory=7G

從 VM 與 local 之間複製檔案

multipass transfer <local-path> <vm-name>:.
multipass transfer <vm-name>:<vm-path> .

mount 資料夾到 VM 上

mount 路徑到 VM 上

multipass mount <local-path> <vm-name>:<vm-path>

解除 mount

multipass umount <vm-name>:<vm-path>

發表迴響