Lima
https://gyazo.com/b4d1a76523b7f078ad4c3ae5b22195b5
#コンテナ
概要
Lima(Linux Machines)は、macOS上でLinux仮想マシンを自動的にセットアップし、管理するためのツール
Limaは、「Linux virtual machines on macOS」というコンセプトのオープンソースプロジェクト
目的は、macOS 上で簡単に Linux 仮想マシンを作り、そこにコンテナランタイムや開発ツールを動かせるようにすること
lima-vm/lima: Linux virtual machines, with a focus on running containers
なぜLimaが必要なのか
macOSはUnix系OSですが、ネイティブのLinuxカーネルを持たないため、多くのLinux向けツールやコンテナランタイム(containerd, podman, Docker daemon)はそのままでは動きません。
これを解決するためにMacでは以下のアプローチが使われます。
Docker Desktop → 専用VM + GUI管理
Multipass(Canonical製)
Parallels, VirtualBox(汎用VM)
Lima → 軽量・CLI中心・開発用に特化
特に Lima は コンテナ開発に必要な最低限の仮想環境を提供し、QEMU + macOSのハイパーバイザ(Hypervisor.framework)を活用して高速化できます。
Colimaとの関係
Lima
Linux仮想マシンを管理するための低レベルな基盤・フレームワーク
汎用性が高く、様々な設定が可能
Limaは汎用VMツールなので、Docker以外のDevOpsツールにも利用可能
Limaが仮想化基盤を提供し、Colimaがその上でコンテナ開発に特化したラッパーという関係
Colima
Limaをベースにして、特にDockerなどのコンテナ実行環境として使うことに特化させた、より高レベルなツール
ユーザーフレンドリーなデフォルト設定や簡単なコマンドを提供
Colima = Lima + コンテナ開発特化設定
Colimaは内部でLimaを呼び出し、DockerやKubernetesがすぐ使える状態にしたVMを生成します
ユーザーはColima CLIで操作でき、Limaを直接触らなくてもよい
メリット
完全オープンソース & 無料
軽量で高速(Hypervisor.framework利用時)
CLIベースでスクリプト自動化が容易
デメリット
GUI管理なし
ネットワーク設定が場合により複雑(VPNや複数NIC利用時)
VirtualBoxのようにWindows上では動かない(基本macOS/Linux専用)