Multipassコマンドメモ
はじめに
Multipassのコマンドメモです。
オフィシャルを見ましょう。
動作確認環境
- MacBook Pro 13-inch, 2018
- macOS Big Sur 11.6.3
- Homebrew導入済み
- multipass 1.8.1+mac / multipassd 1.8.1+mac
インストール
Installing Multipass on macOS | Multipass documentation
brewコマンドでMultipassをインストールする。
バックエンドはhyperkitのまま使用する。[1]
% brew install --cask multipass
メニューバー
インストール後に再起動するとメニューバーにMulltipassが常駐する。[2]
仮想環境の開始、終了、シェルオープンなどができる。
操作用メニュー
仮想環境の操作
イメージ
`multipass find` command | Multipass documentation
使用できるイメージの一覧を表示する。
% multipass find
Image Aliases Version Description
18.04 bionic 20220131 Ubuntu 18.04 LTS
20.04 focal,lts 20220207 Ubuntu 20.04 LTS
21.10 impish 20220201 Ubuntu 21.10
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 Kubernetess
作成
cloud-initで設定をしてVMを作成する。
各種設定、ユーザー、インストールパッケージ、コマンドの実行などを行える。
例では「~/cloud-config.yaml」に作成する。
% cat > ./cloud-config.yaml << _EOF_
#cloud-config
locale: en_US.UTF8
timezone: Asia/Tokyo
users:
- name: ubuntu
sudo: ALL=(ALL) NOPASSWD:ALL
package_upgrade: true
packages:
- curl
- zip
- jq
runcmd:
- apt-get -y update
- apt-get -yV upgrade
- [systemctl, daemon-reload]
_EOF_
`multipass launch` command | Multipass documentation
vmという名前で、CPU2個、メモリ4GB、ディスク20GBのマシンにUbuntu20.04をインストールする。
「cloud-config.yaml」に合わせてセットアップする。
% multipass launch --name vm --cpus 2 --mem 4G --disk 20G --cloud-init cloud-config.yaml 20.04
# 初期化処理が行われる。時間がかかる。
% Launched: vm
# 作成後起動状態になっている
% multipass list
Name State IPv4 Image
vm Running 192.168.64.5 Ubuntu 20.04 LTS
とりあえず起動してみたい場合は以下のようにすることもできる。
% multipass launch
ログイン
`multipass shell` command | Multipass documentation
仮想環境内にログインする。
% multipass shell vm
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-99-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Tue Feb 15 12:42:56 JST 2022
System load: 0.0 Processes: 127
Usage of /: 8.0% of 19.21GB Users logged in: 0
Memory usage: 4% IPv4 address for enp0s2: 192.168.64.5
Swap usage: 0%
0 updates can be applied immediately.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
ubuntu@vm:~$
起動
`multipass start` command | Multipass documentation
仮想環境を起動する。
% multipass start vm
# 実行待ち。時間がかかる。
% multipass list
Name State IPv4 Image
vm Running 192.168.64.5 Ubuntu 20.04 LTS
停止
`multipass stop` command | Multipass documentation
仮想環境を停止する。
% multipass stop vm
# 停止待ち。時間がかかる。
% multipass list
Name State IPv4 Image
vm Stopped -- Ubuntu 20.04 LTS
削除
Deleting the instance - Working with Multipass instances | Multipass documentation
仮想環境を削除する。
deleteコマンドでゴミ箱に入れる。
purgeコマンドでゴミ箱を空にする。
% multipass delete vm
% multipass list
Name State IPv4 Image
vm Deleted -- Not Available
% multipass purge
% multipass list
No instances found.
recoverコマンドでゴミ箱から取り出せる。
% multipass delete vm
% multipass list
Name State IPv4 Image
vm Deleted -- Not Available
% multipass recover vm
% multipass list
Name State IPv4 Image
vm Stopped -- Ubuntu 20.04 LTS
仮想環境の情報
一覧
`multipass list` command | Multipass documentation
仮想環境の一覧を表示する。
% multipass list
Name State IPv4 Image
vm Stopped -- Ubuntu 20.04 LTS
vm2 Running 192.168.64.6 Ubuntu 20.04 LTS
lsでも一覧を表示する。
% multipass ls
Name State IPv4 Image
vm Stopped -- Ubuntu 20.04 LTS
vm2 Running 192.168.64.6 Ubuntu 20.04 LTS
詳細表示
`multipass info` command | Multipass documentation
仮想環境の情報を表示する。
% multipass info vm
Name: vm
State: Running
IPv4: 192.168.64.5
Release: Ubuntu 20.04.3 LTS
Image hash: 3d7282d3e92b (Ubuntu 20.04 LTS)
Load: 0.25 0.06 0.02
Disk usage: 1.5G out of 19.2G
Memory usage: 145.4M out of 3.8G
Mounts: --
「--format」オプション指定で「json」や「yaml」で出力ができる。
multipass info --format json vm
% multipass info --format json vm
{
"errors": [
],
"info": {
"vm": {
"disks": {
"sda1": {
"total": "20629221376",
"used": "1645203456"
}
},
"image_hash": "3d7282d3e92bd2547db9d26590f4a951cead31a10a6470b18ef0848f83db2051",
"image_release": "20.04 LTS",
"ipv4": [
"192.168.64.5"
],
"load": [
0.96,
0.27,
0.1
],
"memory": {
"total": 4122816512,
"used": 151633920
},
"mounts": {
},
"release": "Ubuntu 20.04.3 LTS",
"state": "Running"
}
}
}
multipass info --format yaml vm
% multipass info --format yaml vm
errors:
- ~
vm:
- state: Running
image_hash: 3d7282d3e92bd2547db9d26590f4a951cead31a10a6470b18ef0848f83db2051
image_release: 20.04 LTS
release: Ubuntu 20.04.3 LTS
load:
- 0.46
- 0.35
- 0.14
disks:
- sda1:
used: 1645207552
total: 20629221376
memory:
usage: 152186880
total: 4122816512
ipv4:
- 192.168.64.5
mounts: ~
仮想環境とファイル共有
Sharing data with the instance - Working with Multipass instances | Multipass documentation
マウント
ホームをマウントする。
% multipass mount $HOME vm
% multipass info vm
Name: vm
State: Running
IPv4: 192.168.64.5
Release: Ubuntu 20.04.3 LTS
Image hash: 3d7282d3e92b (Ubuntu 20.04 LTS)
Load: 0.07 0.02 0.00
Disk usage: 1.5G out of 19.2G
Memory usage: 166.2M out of 3.8G
Mounts: /Users/hoge => /Users/hoge
UID map: 501:default
GID map: 20:default
mac側の「~/ubuntu」をUbuntuの「~/ubuntu」にマウントする。
初回テスト用にフォルダーとファイルを作成する。
% mkdir ~/ubuntu
% touch ~/ubuntu/hogehoge
% multipass shell vm
ubuntu@vm:~$ mkdir ubuntu
ubuntu@vm:~$ exit
「~/ubuntu」をマウントする。
% multipass mount ~/ubuntu vm:~/ubuntu
% multipass info vm
Name: vm
State: Running
IPv4: 192.168.64.5
Release: Ubuntu 20.04.3 LTS
Image hash: 3d7282d3e92b (Ubuntu 20.04 LTS)
Load: 0.06 0.12 0.05
Disk usage: 1.5G out of 19.2G
Memory usage: 163.3M out of 3.8G
Mounts: /Users/hoge/ubuntu => ~/ubuntu
UID map: 501:default
GID map: 20:default
% multipass shell vm
ubuntu@vm:~$ ls ubuntu/
hogehoge
アンマウント
すべてアンマウントする。
% multipass umount vm
% multipass info vm
Name: vm
State: Running
IPv4: 192.168.64.5
Release: Ubuntu 20.04.3 LTS
Image hash: 3d7282d3e92b (Ubuntu 20.04 LTS)
Load: 0.00 0.00 0.00
Disk usage: 1.5G out of 19.2G
Memory usage: 158.8M out of 3.8G
Mounts: --
参考にしたサイト
-
設定でvirtualboxに変更できる ↩︎
-
About→Autostart on loginのチェックを外すと常駐解除される ↩︎
Discussion