Limaを使って仮想マシンを構築してみる

スポンサーリンク

はじめに

Lima とはどんなものなのか、どうやって使うのかざっくりまとめてみたいと思います。

Lima とは

Lima(Linux Machines)は、ファイル共有とポートフォワードを自動でやってくれる Linux 仮想マシンを構築してくれるツールです。

containerd を標準でサポートしており、そのほかのコンテナエンジン(Docker, Podman など)もサポートしています。

そのため、Lima で VM 構築して、その上でコンテナを起動するといったことができます。

インストール

インストールはbrewを使ってできます。

brew install lima

使い方

簡単な使い方を紹介します。

VM の起動

下記のコマンドで VM の起動ができます。--name=[instance name]でインスタンスの名前を設定できます。デフォルトの名前はdefaultです。

limactl start

実行すると、そのままの設定で起動するか、エディタを開いて設定を変更するか、テンプレートを選択するか聞かれますが、Proceed with the current configurationを選択するとそのままの設定で VM の起動が開始されます。

❯ limactl start
? Creating an instance "default"  [Use arrows to move, type to filter]
> Proceed with the current configuration
  Open an editor to review or modify the current configuration
  Choose another template (docker, podman, archlinux, fedora, ...)
  Exit

テンプレートから起動

テンプレートを選択して、起動する場合は下記になります。

limactl start template://[template name]
limactl start template://rocky-9

テンプレートは下記から選択できます。

Templates

設定ファイルから起動

自分で設定ファイルを作成して、その設定から VM を起動することもできます。

limactl start [yaml file]
limactl start my-vm.yaml

設定ファイルの中身はdefaultの設定を参考に作成できます。

https://github.com/lima-vm/lima/blob/master/examples/default.yaml

VM の一覧

下記で VM の一覧が確認できます。

limactl list
❯ limactl list
NAME       STATUS     SSH                VMTYPE    ARCH      CPUS    MEMORY    DISK      DIR
default    Running    127.0.0.1:60022    qemu      x86_64    4       4GiB      100GiB    ~/.lima/default

コマンドの実行とシェルへの接続

下記のコマンドで対象のインスタンスでコマンドを実行できます。

limactl shell [instance] [command]

また、下記で対象のインスタンスのシェルに接続できます。

limactl shell [instance]

limaコマンドもあり、下記 2 つのコマンドは同じものになります。

lima
limactl shell default

実際に使ってみる

下記の"Learning eBPF"のサンプルで用意されているlearning-ebpf.yamlを使って、VM を起動してみたいと思います。

https://github.com/lizrice/learning-ebpf/blob/main/learning-ebpf.yaml

まずは、設定ファイルを使って VM を起動します。

❯ limactl start learning-ebpf.yaml
? Creating an instance "learning-ebpf"  [Use arrows to move, type to filter]
> Proceed with the current configuration
  Open an editor to review or modify the current configuration
  Choose another template (docker, podman, archlinux, fedora, ...)
  Exit

起動が完了して、limactl listを実行すると起動しているのが確認できます。

❯ limactl list
NAME             STATUS     SSH                VMTYPE    ARCH      CPUS    MEMORY    DISK      DIR
learning-ebpf    Running    127.0.0.1:58090    qemu      x86_64    4       10GiB     100GiB    ~/.lima/learning-ebpf

シェルに接続してみます。

❯ limactl shell learning-ebpf
masa@lima-learning-ebpf:/Users/masa$

lsとかを実行すると、ホストマシンのファイルが確認でき、ファイル共有ができていることがわかります。また、ホームディレクトリは VM のユーザーのホームディレクトリになっていることがわかります。

masa@lima-learning-ebpf:/Users/masa$ echo $HOME
/home/masa.linux

VM の停止と削除は下記のコマンドでできます。

limactl stop learning-ebpf
limactl delete learning-ebpf

参考

タイトルとURLをコピーしました