マルチパスVMマネージャーのチートシート:Ubuntu、WindowsおよびmacOSガイド

マルチパスのインストール、設定、および基本的なコマンド

目次

Multipass は、Linux、Windows、macOS で Ubuntu クラウドインスタンスを作成および管理するのに役立つ軽量な仮想マシンマネージャです。

開発者で孤立した環境が必要な場合、DevOps エンジニアで構成をテストする必要がある場合、または Linux を学んでいる場合、Multipass は Ubuntu VM をすぐに起動できるシンプルなコマンドラインインターフェースを提供します。

Multipass VM Manager Ubuntu

Multipass とは?

Multipass は、Canonical が提供する Ubuntu 仮想マシンの作成および管理に特化した公式ツールです。シンプルで高速でクロスプラットフォームに対応しており、さまざまなオペレーティングシステムで一貫した Ubuntu 環境が必要な開発者にとって最適な選択肢です。

主な特徴

  • クロスプラットフォーム: Linux、Windows、macOS で動作
  • 軽量: 伝統的な仮想マシンに比べてリソースオーバーヘッドが少ない
  • cloud-init サポート: cloud-init メタデータで VM を構成
  • スナップショットサポート: VM スナップショットを作成および復元
  • ネットワーク統合: ホストと VM 間のネットワーク接続が簡単
  • SSH アクセス: 内蔵の SSH キー管理

最も役立つコマンド

# クイックリファレンス
multipass launch --name dev --cpus 2 --memory 4G --disk 20G
multipass shell dev
multipass mount ./project dev:/home/ubuntu/project
multipass snapshot dev before-changes
multipass restore dev before-changes
multipass delete dev
multipass purge

インストール

Ubuntu/Linux

# snap を使用してインストール(推奨)
sudo snap install multipass

# apt を使用してインストール
sudo apt update
sudo apt install multipass

Windows

  1. multipass.run から Windows インストーラをダウンロード
  2. 管理者としてインストーラを実行
  3. Multipass はデフォルトで Hyper-V を使用(Windows 10 Pro/Enterprise)または VirtualBox にフォールバック

macOS

# Homebrew を使用してインストール
brew install --cask multipass

# multipass.run からダウンロード

基本的な使用方法

最初の VM の作成

# デフォルト設定で VM を作成
multipass launch

# 特定の名前で VM を作成
multipass launch --name my-vm

# 特定の Ubuntu リリースで VM を作成
multipass launch 22.04 --name ubuntu-22

# カスタムリソースで VM を作成
multipass launch --name dev-vm --cpus 2 --memory 4G --disk 20G

VM の管理

# すべての VM を一覧表示
multipass list

# VM を起動
multipass start my-vm

# VM を停止
multipass stop my-vm

# VM を削除
multipass delete my-vm
multipass purge  # すべての削除済み VM を削除

VM へのアクセス

# VM 内でシェルを開く
multipass shell my-vm

# VM 内でコマンドを実行
multipass exec my-vm -- ls -la

# ファイルを VM と間でコピー
multipass transfer file.txt my-vm:/home/ubuntu/
multipass transfer my-vm:/home/ubuntu/file.txt ./

Multipass VM 内では、フルな Ubuntu シェル環境にアクセスできます。効率的なコマンドライン作業のために、Bash Cheat Sheet で必須のコマンドとショートカットを参照してください。

Multipass Instances

Multipass ショートカット

VM 管理コマンド

# 作成と起動
multipass launch                    # デフォルト VM の作成
multipass launch --name vm1        # 名前付き VM の作成
multipass launch 20.04 --name old  # 特定の Ubuntu バージョン

# リソース割り当て
multipass launch --cpus 2 --memory 4G --disk 20G --name dev

# VM 制御
multipass start vm1                # VM の起動
multipass stop vm1                 # VM の停止
multipass restart vm1               # VM の再起動
multipass suspend vm1              # VM のスリープ

# 情報
multipass list                     # すべての VM の一覧
multipass info vm1                 # VM の詳細
multipass get local.privileged-mounts  # マウント設定の確認

ファイル操作

# ファイル転送
multipass transfer file.txt vm1:/home/ubuntu/
multipass transfer vm1:/home/ubuntu/file.txt ./
multipass transfer --recursive ./folder vm1:/home/ubuntu/

# ホストディレクトリのマウント
multipass mount /host/path vm1:/vm/path
multipass umount vm1:/vm/path

ネットワーク設定

# ネットワーク情報
multipass info vm1 | grep IPv4

# ポート転送(Windows/macOS)
multipass set local.port-forwarding=true
multipass restart vm1

スナップショットとバックアップ

# スナップショットの作成
multipass snapshot vm1 snapshot1

# スナップショットの復元
multipass restore vm1 snapshot1

# スナップショットの一覧
multipass list --all

高度な設定

cloud-init 統合 cloud-config.yaml ファイルを作成します:

#cloud-config
package_update: true
package_upgrade: true
packages:
  - docker.io
  - git
  - curl

users:
  - name: developer
    sudo: ALL=(ALL) NOPASSWD:ALL
    shell: /bin/bash
    ssh_authorized_keys:
      - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC...

runcmd:
  - systemctl enable docker
  - systemctl start docker

cloud-init で VM を起動:

multipass launch --cloud-init cloud-config.yaml --name configured-vm

カスタムイメージ

# 利用可能なイメージを一覧表示
multipass find

# 特定のイメージを使用
multipass launch daily:22.04 --name daily-vm

開発ツールとの統合

Docker 統合 Multipass は Docker と非常にうまく連携し、コンテナ化された開発に最適です。Docker を Multipass VM 内で実行したり、Multipass を使って Docker 開発 用の孤立した環境を作成したりできます。

開発環境 Python 開発では、Python virtual environments と同様の孤立した環境を設定できますが、フルな OS 隔離が可能です。VS Code ユーザーの場合、Multipass VM をリモート開発環境として使用し、Dev Containers in VS Code と組み合わせて、フルな OS 隔離が必要なシナリオで使用できます。

セルフホスティングアプリケーション Multipass は、GiteaOllama のようなセルフホスティングアプリケーションを孤立した環境でテストするのに最適です。コンテナオーケストレーションが必要な場合は、Multipass VM 内で Kubernetes クラスターを実行し、Kubernetes Cheatsheet を使用してコンテナワークロードを管理できます。

トラブルシューティング

一般的な問題

# Multipass の状態を確認
multipass get local.driver

# Multipass をリセット
multipass purge
sudo snap restart multipass

# VM ログを確認
multipass logs vm1

パフォーマンス最適化

# プrivileged マウントを有効にしてパフォーマンスを向上
multipass set local.privileged-mounts=true

# メモリ制限を設定
multipass set local.memory=8G

代替ソフトウェアとの比較

Multipass vs Docker

  • Multipass: フル VM、OSレベルのテストに最適、リソース使用量が多い
  • Docker: コンテナ、効率的、アプリケーションのデプロイに最適

Multipass vs VirtualBox/VMware

  • Multipass: コマンドラインに特化、cloud-init サポート、自動化が簡単
  • VirtualBox/VMware: GUI ベース、設定オプションが多い、デスクトップ用途に最適

Multipass vs Proxmox

  • Multipass: 軽量、単一 VM に特化、開発環境に最適
  • Proxmox: フル仮想化スタック、生産環境に最適、クラスタリングや高可用性などの高度な機能

Multipass vs Vagrant

  • Multipass: Ubuntu に特化、シンプルなセットアップ、単一 VM シナリオに最適
  • Vagrant: マルチプロバイダサポート、複雑なプロビジョニング、マルチ VM セットアップに最適

最佳な実践

  1. リソース管理: ワークロードに応じて適切な CPU とメモリを割り当て
  2. スナップショット戦略: 大規模な変更を行う前にスナップショットを作成
  3. ネットワークセキュリティ: 暴露されたサービスに適切なファイアウォールルールを使用
  4. バックアップ戦略: 重要な VM データを定期的にバックアップ
  5. クリーンアップ: 使用していない VM を削除してディスクスペースを節約

Multipass を使用するべきケース

Multipass を選ぶべきケース:

  • 開発にフル Ubuntu VM が必要な場合
  • シンプルなコマンドライン VM 管理が必要な場合
  • 異なるオペレーティングシステムで作業する場合
  • cloud-init 構成サポートが必要な場合
  • セルフホスティングアプリケーションを孤立環境でテストする必要がある場合

代替案を検討すべきケース:

  • 最大のパフォーマンスが必要な場合(Docker コンテナを使用)
  • 複雑なマルチ VM セットアップが必要な場合(Vagrant を使用)
  • GUI ベースの管理が必要な場合(VirtualBox/VMware を使用)

Multipass は、プラットフォームを問わずシンプルで一貫した Ubuntu 開発環境を提供し、伝統的な仮想化ツールの複雑さを避けて信頼性の高い VM 管理が必要な開発者にとって最適な選択肢です。

有用なリンク