Repo-lab
CLIツール

kern:3.5msで起動するRust製rootlessコンテナランタイム — AIコード実行サンドボックスにも対応

⭐ 369 stars GitHub →

「Dockerを起動するたびにデーモンの重さを感じる」「LLM生成コードを安全に実行したいが大掛かりなセットアップは避けたい」——そんな課題に応えるのが kerngetkern/kern)です。Rustで書かれた1.52MBの静的バイナリ1本で、デーモン不要のrootlessコンテナを約3.5ミリ秒で起動します。Dockerの約297msと比べると実に85倍の高速化。しかも1.52MBという驚異的な小ささで、GitHubスター369を集めています(2026年9月時点)。

さらにAIエージェントのLLM生成コードを安全に実行するkern-sandbox(Python/Node.jsバインディング)と、Claude DesktopやCursor向けのMCPサーバー(kern-mcp)を内蔵しており、現代のAIネイティブな開発ワークフローにも対応しています。


kern コンテナランタイムとは何か:軽量化の哲学

kernは「コンテナランタイムでありながら、サンドボックスでもあり、リソーススライサーでもあり、スタックランナーでもある」ツールです。そのすべてが1.52MBのバイナリに収まっています。

設計思想:依存を削ぎ落とす

Rustの依存クレートはlibcのみ。JSONやOCIマニフェストは手書きパーサーで処理し、TLSスタックのリンクを避けるためにpullはcurltarに委譲するという徹底ぶりです。その結果:

  • 待機時のRAM使用量 = 0(デーモンプロセスなし)
  • 静的バイナリ1本(インストール後に余計なファイルなし)
  • 起動時間 ≈ 3.5ms(対Docker: 297ms、対Podman: 293ms)

コンテナ技術として本物

「軽量だから機能が限られる」は当てはまりません。kernは本物のOCIイメージに対応し、pullbuild(Dockerfile)・commitpushsave/loadをすべてサポートします。


インストール方法:3パターン

推奨:インストールスクリプト(30秒)

curl -fsSL https://raw.githubusercontent.com/getkern/kern/main/install.sh | sh

スクリプトがアーキテクチャ(x86_64 / aarch64)を自動判別し、SHA256チェックサムを検証してから~/.local/bin(root実行時は/usr/local/bin)にインストールします。

手動検証あり

curl -fsSLO https://github.com/getkern/kern/releases/latest/download/kern-x86_64-unknown-linux-musl.tar.gz{,.sha256}
sha256sum -c kern-x86_64-unknown-linux-musl.tar.gz.sha256 && tar xzf kern-x86_64-unknown-linux-musl.tar.gz

ソースビルド(Rust開発者向け)

# Rust未インストールの場合
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

cargo install --git https://github.com/getkern/kern getkern --locked

依存クレートがlibcのみのため、i7-14700KF環境で36秒でビルド完了します。


kern の使い方:クイックスタート5コマンド

インストール直後から使えるコマンドを紹介します。

1. OCIイメージからのインタラクティブシェル

kern box dev --image alpine -it -- sh

Alpine Linuxのシェルが約3.5msで起動します。exit後はコンテナが即座に消えます。

2. バックグラウンドサービス起動

kern box svc --image nginx:alpine -d -p 8080:80

-dでデタッチ、-pでポートフォワード。kern psでステータス確認、kern logs svcでログ確認。

3. サンドボックスなしのリソース制限実行

kern run --memory 256M --cpus 0.5 -- ./heavy_process

コンテナ(名前空間分離)なしで、CPUとメモリだけを制限してホストプロセスを実行します。

4. スタック起動(docker-compose.yml互換)

kern compose stack.toml up
# または既存のdocker-compose.ymlをそのまま指定
kern compose docker-compose.yml up

5. リアルタイムTUIダッシュボード

kern top

CPU・メモリ・ディスク・デバイスの使用状況をリアルタイムで監視できるターミナルUIが開きます。


AIエージェントのコード実行サンドボックスとして使う

kernが特に注目されているのが、LLM生成コードの安全な実行環境としての活用です。

kern-sandbox:Python/Node.jsバインディング

pip install kern-sandbox    # PyPI
npm install kern-sandbox    # npm
from kern_sandbox import run_code

result = run_code("import platform; print(platform.python_version())")
print(result.stdout)
# タイムアウト・OOMキル・ブロックされたシステムコールは例外ではなくresult.faultとして返る

フレッシュなコンテナでネットワーク遮断・メモリ上限・PID制限・ケイパビリティドロップが自動適用されます。障害はデータとして返る設計(例外にならない)が特徴で、エラーハンドリングがシンプルになります。

MCP サーバー(Claude Desktop・Cursor対応)

pip install kern-sandbox    # kern-mcp も同梱

Claude DesktopやCursorのMCP設定に追加するだけで、ローカルコードインタープリターとして使えます:

{ "mcpServers": { "kern": { "command": "kern-mcp" } } }

利用可能ツール:run_code(python/bash/node)、write_fileread_filelist_files。各呼び出しはフレッシュなネットワーク遮断ボックスで実行され、ファイルはワークスペース上に永続化されます。


kernとの違い・なぜ今このツールか

Docker・Podman・bubblewrapとの性能比較を同一ハードウェア(i7-14700KF、Linux 7.0)で計測した結果:

kern Docker Podman
デーモン 不要 必要 不要
rootless 常時 オプション yes
コールドスタート ~3.5 ms ~297 ms ~293 ms
待機時メモリ 0 154〜160 MB 0
フットプリント 静的バイナリ1本 デーモンスタック マルチバイナリ

bubblewrapとの比較:コールドスタート速度は同等(~2.3ms)ですが、bubblewrapはOCIイメージ・ライフサイクル管理・リソースプロファイルを持ちません。kernはそれらを1バイナリに統合しています。

GitHubでの急上昇背景:AIエージェント(Claude Code含む)のツールコール実行にセキュアなサンドボックスが求められる中、「軽量・デーモンなし・MCP対応」という組み合わせが開発者の関心を集めています。


こんな人に向いている:職種別活用シーン

DevOpsエンジニア・インフラエンジニア
CI/CDパイプラインでDockerデーモンなしにコンテナをビルド・テストしたいエンジニアに最適です。200コンテナの並列起動が0.11秒(Docker: 16.2秒)という性能はGitHub ActionsのセルフホストランナーやJenkins環境での大幅高速化につながります。

AIエンジニア・LLMアプリケーション開発者
LLMが生成したコードをkern-sandboxで安全に実行するアーキテクチャは、コードエージェント・Jupyter代替・Devinライクなシステム構築に直接活用できます。タイムアウト・OOMが例外でなくデータとして返る設計により、ロバストなエラーハンドリングが実現します。

Rustエンジニア・システムプログラマー
依存クレートがlibcのみという極限まで削ぎ落とされた設計はRust学習の教材としても優秀です。Linuxの名前空間・seccomp・cgroupの実用的な活用例をRustで学べます。

RaspberryPi・Jetsonなどのエッジデバイス開発者
aarch64バイナリが提供されており、リソース制約の厳しいARMボード上でも動作します。IoTデバイスのGPIOアクセスをvgpio:プロファイルで制御する例もREADMEに含まれています。


使う前に知っておきたいこと

プラットフォーム制限:
Linuxネイティブのみ対応。macOSネイティブビルドは提供されず、今後の予定もありません(macOSには名前空間もcgroupsも存在しないため)。macOSユーザーはcolima・Lima・OrbStack等のLinux VM経由での利用が必要です。Windows向けはWSL2経由でのみ動作します(WSL2向けのrootfsも同梱)。

GPU対応:
ロードマップ掲載中ですが、現時点では未対応です。GPU利用が必要な場合はDockerを継続使用する必要があります。

vgpioの粒度:
GPIO制御は「ピン単位」ではなく「チップ単位(/dev/gpiochipN全体)」でのアクセス付与となります。特定ピンのみ許可する境界はカーネルレベルでは実現できません。

ライセンス:
Apache License 2.0。商用利用・改変・再配布は自由ですが、著作権表示とライセンス文書の保持が必要です。TRADEMARKファイルでブランド利用に関する追加条件も定義されています。

Linux カーネル要件:
非特権ユーザー名前空間(unprivileged user namespaces)とcgroup v2が必要です。kern doctorコマンドで事前確認できます。


関連ツール・おすすめサービス

  • DigitalOcean — kernをVPS上で動かすならDropletが最適。App Platformでコンテナアプリをかんたんデプロイ
  • さくらVPS — 国内ホスティングでkernをセルフホストするならこちら。月額費用を抑えた自分サーバー構築に

この技術を学ぶ

Rust・コンテナ技術・CLIツール開発に興味を持った方には、Udemyのオンラインコースもおすすめです。


まとめ

kernはDockerの複雑さに疲れたエンジニアと、AIエージェントのコード実行基盤を探しているMLエンジニアの両方にフィットするツールです。1.52MBバイナリ・デーモンなし・rootless常時・3.5ms起動という性能と、Claude Desktop/Cursor向けMCPサーバー内蔵というAI対応の両軸で、2026年後半のGitHub急上昇リポジトリに選ばれた理由が明確です。Apache 2.0の完全オープンソースで商用利用も可能。まずkern doctorで手元の環境を確認するところから始めてみてください。

毎日更新のGitHubツール情報

LINEで受け取って最新情報をキャッチアップしよう

友達追加する(無料)

関連記事

この記事が役に立ったらシェアしてください