ウェブサイト検索

Ubuntu 26.04でのMultipassの使い方


Multipassは、CanonicalがUbuntuおよびその他のオペレーティングシステム向けに開発した軽量の仮想マシンマネージャーです。このツールを使用すると、Ubuntu 26.04システム上でUbuntuインスタンスを簡単に起動および管理でき、アプリケーションのテスト、開発環境の作成、または分離されたワークロードの実行を効率的に行うことができます。このガイドでは、Multipassを使用してUbuntu 26.04でインスタンスを起動したり、仮想マシンを管理したり、インスタンス内でコマンドを実行するなどの一般的なタスクを行う方法を学びます。

このチュートリアルで学ぶこと:

  • Ubuntu 26.04でMultipassをインストールして設定する方法
  • Ubuntuインスタンスを起動および管理する方法
  • 仮想マシン内でコマンドを実行する方法
  • ホストとインスタンス間でファイルを転送する方法
  • インスタンスのネットワーク設定方法

ソフトウェア要件

記事の要約: sudo snap install multipass で Multipass をインストールし、multipass launch --name linuxconfig でインスタンスを起動し、multipass shell linuxconfig でアクセスします。

ステップコマンド/アクション
1. Multipassをインストールする
sudo snap install multipass
2. インスタンスを起動する
multipass launch --name linuxconfig
3. インスタンスにアクセス
multipass shell linuxconfig
4. 例を挙げる
multipass list

Multipassのインストール

MultipassはUbuntu 26.04でスナップパッケージとして利用可能で、自動更新により最新の安定版を入手できます。インストール手順は簡単で、単一のコマンドだけで済みます。

  1. Snapを使用してMultipassをインストールする: 以下のコマンドを実行して、Ubuntu 26.04システムにMultipassをインストールします

    $ sudo snap install multipass

    Snapパッケージマネージャーは、必要なすべての依存関係とともにMultipassをダウンロードしてインストールします。このプロセスは、インターネット接続によりますが、通常1~2分かかります。

  2. インストールの確認:Multipassのバージョンを確認して、正しくインストールされているかチェックします

    $ multipass version

    出力にはインストールされたMultipassのバージョンが表示され、インストールが成功したことが確認できます。multipassクライアントとmultipassdデーモンの両方のバージョン情報が表示されるはずです。

インストール完了
Multipassは現在、Ubuntu 26.04システムにインストールされ、使用できる状態です。

インスタンスの起動

Multipassで新しい仮想マシンインスタンスを作成することは、最も頻繁に使用する基本的な機能です。Multipassは、起動時にインスタンスをカスタマイズする柔軟なオプションを提供します。

  1. デフォルトのインスタンスを起動: デフォルトの仕様で基本的なUbuntuインスタンスを作成

    $ multipass launch --name linuxconfig

    このコマンドは、最新のUbuntu LTSリリースを使用して「linuxconfig」という名前の新しい仮想マシンを、デフォルトのリソース割り当て(1 CPU、1GB RAM、5GBディスク容量)で作成します。起動プロセスでは、Ubuntuのイメージが既にキャッシュされていない場合はダウンロードし、インスタンスを初期化します。

  2. カスタムリソースで起動: インスタンスのCPU、メモリ、ディスクスペースを指定します

    $ multipass launch --name linuxconfig2 --cpus 2 --memory 4G --disk 20G

    これは、2つのCPUコア、4GBのRAM、20GBのディスクスペースを持つインスタンスを作成します。これらの値は、ワークロードの要件や利用可能なシステムリソースに基づいて調整してください。

  3. 特定のUbuntuバージョンを起動: 特定のUbuntuリリースでインスタンスを作成する

    $ multipass launch 22.04 --name linuxconfig3

    リリース番号を使用して、異なるUbuntuのバージョンを指定できます。利用可能なイメージを見るには、multipass findを使用してください。

  4. 利用可能なイメージを表示:ダウンロード可能なすべてのUbuntuイメージを一覧表示

    $ multipass find

    このコマンドは、使用可能なUbuntuリリースや、multipass ubuntu 26.04で起動できるその他のサポートされているイメージを表示します。

リソース割り当て
リソースを割り当てる際には、パフォーマンスの低下を防ぐために、ホストシステムに十分な利用可能なRAMとCPUコアがあることを確認してください。Multipassインスタンスはホストシステムとリソースを共有します。

インスタンスの管理

Multipassは、仮想マシンインスタンスのライフサイクルを管理するための包括的なコマンドを提供します。これらの管理操作を理解することは、Multipass Ubuntu 26.04を効果的に使用するために不可欠です。

  1. すべてのインスタンスを一覧表示: すべてのMultipassインスタンスに関する情報を表示

    $ multipass list

    出力にはインスタンス名、状態(実行中、停止、削除済み)、IPv4アドレス、およびリリース情報が表示されます。これはインスタンスの状態を確認するための主要なコマンドです。

  2. インスタンスの詳細を表示: 特定のインスタンスに関する包括的な情報を取得

    $ multipass info linuxconfig

    このコマンドは、指定されたインスタンスのCPU数、メモリ割り当て、ディスク使用量、マウントポイント、およびネットワーク構成を含む詳細情報を提供します。

  3. 停止したインスタンスを起動する: 以前に停止したインスタンスを起動します

    $ multipass start linuxconfig

    インスタンスを起動すると、実行状態に戻り、再度接続して使用できるようになります。これは新しいインスタンスを起動するよりも速いです。

  4. 実行中のインスタンスを停止する: インスタンスを正常にシャットダウンする

    $ multipass stop linuxconfig

    インスタンスを停止すると、インスタンスの状態とデータを保持したままシステムリソースが解放されます。インスタンスは将来の使用のために利用可能なままです。

  5. インスタンスを再起動: インスタンスを再起動する

    $ multipass restart linuxconfig

    これはインスタンスの優雅な再起動を実行します。これは、設定変更やソフトウェアの更新後に役立ちます。

  6. インスタンスを削除: インスタンスを削除する(ゴミ箱に移動)

    $ multipass delete linuxconfig

    削除されたインスタンスは、ごみ箱状態に移動され、そこから復元することができます。インスタンスはリソースを消費しなくなりますが、ディスクスペースはすぐには解放されません。

  7. インスタンスを完全に削除:ゴミ箱から削除済みインスタンスを消去

    $ multipass purge

    このコマンドは、ゴミ箱状態のすべてのインスタンスを永久に削除し、ディスク領域を解放します。この操作は元に戻せません。

  8. 削除されたインスタンスを復元: ゴミ箱からインスタンスを復元する

    $ multipass recover linuxconfig

    インスタンスを誤って削除した場合は、パージを実行する前にこのコマンドを使って停止状態に戻してください。

MULTIPASS と DOCKER
Multipass は multipass launch(docker run)や multipass exec(docker exec)といったコマンドがあるため Docker と似た感覚かもしれませんが、目的は異なります。Docker コンテナはホストのカーネルを共有しプロセスの分離を提供しますが、Multipass は QEMU/KVM を使って独自のカーネルを持つ完全な仮想マシンを作成します。これは Multipass インスタンスがより重い(GB 対 MB)ことを意味しますが、真の OS 分離を提供し、異なるカーネルバージョンの実行や完全な systemd 機能へのアクセスを可能にします。軽量なアプリケーションコンテナには Docker を使用し、OS レベルの機能、カーネルモジュール、または真のハードウェア仮想化が必要なシナリオのテストには Multipass を使用してください。

コマンドの実行

Multipassは、仮想マシンインスタンス内でコマンドを実行するための複数の方法を提供し、ホストシステムから直接Ubuntuインスタンスと簡単にやり取りできるようにします。

  1. インタラクティブシェルアクセス: インスタンス内でインタラクティブシェルを開く

    $ multipass shell linuxconfig

    このコマンドは、インスタンスへの直接的なターミナルアクセスを提供し、まるでローカルにログインしているかのように作業することを可能にします。インスタンスのコマンドプロンプトが表示され、デフォルトの ubuntu ユーザーとして任意のコマンドを実行できます。

  2. 単一コマンドを実行: 対話モードに入らずにコマンドを実行する

    $ multipass exec linuxconfig -- ls -la /home/ubuntu

    これはインスタンス内で単一のコマンドを実行し、その出力をホスト端末に返します。ダブルダッシュ(–)は、Multipassのオプションと実行するコマンドを区切ります。この方法は、スクリプトや自動化に特に便利です。

  3. sudoでコマンドを実行する: 権限を昇格させてコマンドを実行する

    $ multipass exec linuxconfig -- sudo apt update

    デフォルトのUbuntuユーザーはパスワードなしでsudoを使用できるため、管理者コマンドを実行するのに便利です。これは、システムの更新やソフトウェアのインストールに不可欠です。

  4. 複数行コマンドを実行: 複雑なコマンドやスクリプトを実行する

    $ multipass exec linuxconfig -- bash -c 'echo "Hello from $(hostname)" && uptime'

    bash -c を使用すると、複数のコマンドや複雑なシェル構文を実行できます。これらのコマンドは、インスタンス内の単一のシェルセッションで実行されます。

コマンド実行
multipass exec を使用する際は、コマンドが非対話型シェルで実行されることを覚えておいてください。ユーザーの操作を必要とするコマンドの場合は、代わりに multipass shell を使用してください。

ファイル転送

Multipassは、ホストシステムと仮想マシンインスタンス間でファイルを転送する効率的な方法を提供しており、これは開発ワークフローやデータ管理において非常に重要です。

  1. インスタンスにファイルをコピー: ホストからインスタンスにファイルを転送する

    $ multipass transfer /path/on/host/file.txt linuxconfig:/home/ubuntu/

    このコマンドは、ホストシステムから指定されたパスにファイルをコピーします。転送方法は効率的で、ファイルとディレクトリの両方で動作します。

  2. インスタンスからファイルをコピー: インスタンスからホストにファイルを転送

    $ multipass transfer linuxconfig:/home/ubuntu/result.txt /path/on/host/

    同じ転送コマンドを使用して、ソースと宛先のパスを逆にすることで、インスタンスからホストシステムにファイルを取得します。

  3. ディレクトリを再帰的に転送: ディレクトリ全体とその内容をコピーする

    $ multipass transfer -r /path/to/directory linuxconfig:/home/ubuntu/

    -r フラグは再帰的コピーを有効にし、ディレクトリおよびそのすべての内容を転送します。これは、プロジェクトディレクトリや複数のファイルを一度に転送する際に便利です。

  4. ホストディレクトリをマウント: ホストからインスタンスへの永続的なマウントを作成

    $ multipass mount /path/on/host linuxconfig:/home/ubuntu/shared

    マウントは、ホストディレクトリとインスタンスパスの間にライブ接続を作成します。どちらか一方で行われた変更は、もう一方にも即座に反映されます。これは、ホスト上でファイルを編集しつつインスタンスで実行する開発ワークフローに最適です。

  5. ディレクトリのマウント解除: マウントされたディレクトリを削除する

    $ multipass unmount linuxconfig:/home/ubuntu/shared

    マウントが不要になったら、接続を整理するためにアンマウントしてください。ファイルは両方の側に残りますが、ライブ同期は停止します。

  6. マウント一覧: インスタンスのすべてのアクティブなマウントを表示

    $ multipass info linuxconfig

    infoコマンドは、インスタンスの詳細でアクティブなマウントを表示し、ソースパスとターゲットパスの両方を示します。

マウントパフォーマンス
マウントは内部的にSSHFSを使用しており、ほとんどのユースケースで優れたパフォーマンスを提供します。非常に大きなファイルや集中的なI/O操作の場合は、代わりにtransferコマンドの使用を検討してください。

ネットワーキングと接続性

Multipassでのネットワーキングの理解は、インスタンスで動作しているサービスにアクセスしたり、インスタンス間通信を行ったりするために不可欠です。Multipassのインスタンスは、自動的にネットワーク接続が構成されます。

  1. インスタンスのIPアドレスを表示: インスタンスに割り当てられたIPアドレスを確認する

    $ multipass list

    list コマンドは、すべての稼働中のインスタンスのIPv4アドレスを表示します。各インスタンスは、通常 10.x.x.x の範囲にある Multipass のプライベートネットワーク範囲からIPアドレスを受け取ります。

  2. インスタンスへの接続テスト:インスタンスへのネットワークアクセスを確認してください

    $ nc -zv $(multipass list | grep -w linuxconfig | awk '{print $3}') 22

    このコマンドは、インスタンスのSSHポート(22)へのTCP接続をテストします。接続が成功すると、ホストとインスタンス間のネットワークアクセスが確認されます。インスタンスに到達可能な場合、出力には「接続成功!」と表示されます。

  3. インスタンスサービスにアクセス: インスタンス内で実行されているサービスに接続する

    $ curl http://$(multipass list | grep -w linuxconfig | awk '{print $3}'):8080

    インスタンス内で実行されているサービスには、インスタンスのIPアドレスを使用してホストからアクセスできます。例えば、インスタンス内でポート8080でウェブサーバーを実行している場合、ホストのブラウザやコマンドラインからアクセスすることができます。

  4. インスタンスに直接SSH接続: 手動接続にはSSHを使用

    $ ssh ubuntu@$(multipass list | grep -w linuxconfig | awk '{print $3}')

    MultipassはSSHキーを自動的に設定し、デフォルトのubuntuユーザーを使用してインスタンスに直接SSHアクセスできるようにします。これはSSH接続を必要とするツールやスクリプトに便利です。Multipassは認証を自動で管理するため、パスワードは不要です。

ネットワークの分離
Multipassのインスタンスはデフォルトでプライベートネットワーク上にあり、ホストおよびインスタンス同士での通信は可能ですが、ネットワーク上の他のマシンから直接アクセスすることはできません。ICMP pingはMultipassのiptablesルールによりブロックされる場合がありますが、TCP接続(SSH、HTTPなど)は通常通り動作します。外部からアクセスするには、ポートフォワーディングまたはブリッジの設定が必要です。

より高度な仮想化のニーズには、Ubuntu 26.04 システムに KVM をインストールすることを検討するかもしれません。Multipass は迅速な Ubuntu インスタンスには優れていますが、KVM は仮想化に対するより多くの制御を提供し、より広範なオペレーティングシステムをサポートします。

結論

Multipassは、Ubuntu 26.04上でUbuntuの仮想マシンを効率的かつ簡潔に管理する方法を提供します。本ガイドを通じて、Multipassのインストール方法、カスタムリソースを使用したインスタンスの起動と管理、仮想マシン内でのコマンド実行、ホストとインスタンス間でのファイル転送、ネットワークの基本理解を学びました。これらのスキルにより、ホストシステムに影響を与えることなく、孤立した開発環境を迅速に作成し、アプリケーションをテストし、ワークロードを実行することができます。

Multipass Ubuntu 26.04 の力は、従来の仮想化ソリューションと比べて、そのシンプルさと速度にあります。ソフトウェアのテスト、アプリケーションの開発、新しい技術の学習などに関わらず、Multipass は数秒で軽量な Ubuntu インスタンスを提供します。高度な機能や設定オプションに関する詳細については、公式の Multipass ドキュメントを参照してください。

よくある質問

  1. Ubuntu 26.04でMultipassはどの仮想化バックエンドを使用しますか? Ubuntu 26.04では、KVMが利用可能な場合、MultipassはデフォルトでKVMアクセラレーション付きのQEMUを使用します。これにより、仮想マシンインスタンスはほぼネイティブに近い性能を発揮します。KVMが利用できない場合やBIOSで有効になっていない場合、MultipassはアクセラレーションなしのQEMUにフォールバックし、性能は低下します。現在のドライバーは multipass get local.driver で確認できます。
  2. なぜPingがMultipassのインスタンスで動作しないのですか? Multipassのブリッジネットワーク(mpqemubr0)上のデフォルトのiptablesルールは、セキュリティ上の理由によりICMPトラフィックをブロックします。ICMPによるPingは動作しないかもしれませんが、SSH、HTTPなどのTCPベースの接続は通常通り機能します。TCP経由でインスタンスに接続可能かどうかを確認するには、nc -zv $ (multipass list | grep -w linuxconfig | awk '{print $3}’ ) 22 を使用して接続をテストできます。
  3. Multipass インスタンスはどれくらいのディスク容量を消費しますか? デフォルトのインスタンスはおおよそ 5GB のディスク容量を使用しますが、ホストのストレージに影響するのはインスタンス内で実際に使用された容量のみです。イメージは /var/snap/multipass/common/cache/vault/instances/ に保存され、QCOW2 フォーマットを使用しており、インスタンスにデータを追加するにつれて動的に増加します。起動時に –disk パラメータを使用してカスタムディスクサイズを指定することも可能です。
  4. Multipass インスタンス内で Docker を実行できますか? はい、通常の Ubuntu システムと同じように、Multipass インスタンス内に Docker をインストールして実行できます。multipass exec linuxconfig -- sudo apt install docker.io を使用して Docker をインストールすれば、通常通り動作します。これは、ホストシステムの Docker インストールに影響を与えずに、隔離された環境でコンテナ化されたアプリケーションをテストするのに便利です。
  5. 既存のインスタンスのリソースを増やすにはどうすればいいですか? 残念ながら、Multipass は既存のインスタンスのサイズ変更をサポートしていません。CPU、メモリ、またはディスクの割り当てを変更するには、希望する仕様で新しいインスタンスを起動し、multipass transfer を使用してデータを移行してから、古いインスタンスを削除する必要があります。インスタンスを起動するときはリソースの割り当てを慎重に計画してください。
  6. Multipass のインスタンスはシステム再起動後も存続しますか? はい、停止したインスタンスは設定が維持され、システム再起動後に multipass start を使って起動することができます。しかし、システム停止時に実行中だったインスタンスは自動的には再起動しません。起動後に手動で再起動する必要があります。インスタンスのデータは再起動を通じて保持されるため、作業内容が失われることはありません。