はじめに
Kernel ImagesはGitHubでホストされているオープンソースプロジェクトで、軽量でサンドボックス化されたChrome環境を提供します。DockerとUnikraft技術に基づいており、隔離されたブラウザインスタンスを構築し、PlaywrightやPuppeteerなどの自動化フレームワークをサポートし、ウェブテスト、データクローリング、AIエージェント開発に適しています。このプロジェクトはonkernelチームによってApache 2.0ライセンスの下で維持管理されており、オープンコードとコミュニティによる貢献があります。ユーザーは簡単な設定でブラウザ環境をデプロイでき、リソースの消費が少なく、起動が速いという利点を享受できる。onkernelはホスティングサービスも提供しており、ユーザーはより多くの機能を待ち望むことができる。
機能一覧
- Chrome DevToolsプロトコルをサポートする設定済みのChromeブラウザを提供します。
- PlaywrightおよびPuppeteerと互換性があり、自動化スクリプトを簡単に統合できます。
- noVNCによるリモートGUIインターフェイスを提供し、視覚的な監視と制御をサポートします。
- インテグレーテッド アンソロピック な コンピューター テキストとボイスアクションをサポートするエージェントを使用する。
- Unikraftをベースにしたunikernelの実装は、自動化されたハイバネーションとステートフル・スナップショットをサポートしている。
- Dockerコンテナのデプロイをサポートし、Linux、macOS、Windowsと互換性があります。
- 高性能シナリオ向けの超低レイテンシ・コールドスタート(20 ms未満)。
- 外部ツールの接続とデバッグを容易にするオープンポート設定。
ヘルプの使用
設置プロセス
Kernel ImagesはDockerとUnikraftの両方のデプロイをサポートしています。以下はLinux, macOSの詳細な手順です(WindowsユーザはDocker Desktopをインストールする必要があります)。
1.Dockerをインストールする
Dockerがシステムにインストールされていることを確認し、以下のコマンドを実行して確認する:
docker --version
インストールされていない場合は、公式ガイドを参照してください:
- Ubuntu/Debian:
sudo apt update sudo apt install -y docker.io sudo usermod -aG docker $USER
- macOS: Docker公式ウェブサイトからDocker Desktopをダウンロード。
- Windows: Docker Desktopをインストールし、WSL 2を有効にする。
2.プロジェクト倉庫のクローン化
Gitを使ってKernel Imagesリポジトリをクローンする:
git clone https://github.com/onkernel/kernel-images.git
cd kernel-images
3.Dockerイメージをビルドする
プロジェクトのルート・ディレクトリで、Dockerイメージをビルドする:
docker build -t kernel-images -f containers/docker/Dockerfile .
イメージが正常にビルドされたことを確認する:
docker images | grep kernel-images
4.Dockerコンテナを実行する
Chrome のサンドボックス インスタンスを起動します:
docker run -d -p 9222:9222 -p 6080:6080 --name kernel-browser kernel-images
-p 9222:9222
: Chrome DevToolsのポートを、自動フレームワーク接続用にマップする。-p 6080:6080
: リモートGUIアクセス用のnoVNCポートをマップする。--name kernel-browser
管理しやすいようにコンテナに名前をつける。
5.(オプション)ユニクラフトの展開
Unikraft は高性能シナリオ向けに軽量な unikernel デプロイメントを提供します。Unikraft ツールチェインをインストールします:
- 協議
unikernels/unikraft-cu/README.md
以下は、インストールされる依存関係のリストである(例えばkraftkit
). - unikernelイメージを構築する:
cd unikernels/unikraft-cu make
- インスタンスを実行する:
kraft run
主な機能
1.接続自動化フレームワーク
Kernel ImagesのChrome環境は、PlaywrightとPuppeteerの両方をサポートしています。以下はPlaywrightの例です:
- 劇作家をインストールする:
npm install playwright
- スクリプトの作成
test.js
::const { chromium } = require('playwright'); (async () => { const browser = await chromium.connectOverCDP('http://localhost:9222'); const page = await browser.newPage(); await page.goto('https://example.com'); console.log(await page.title()); await browser.close(); })();
- スクリプトを実行する:
node test.js
2.リモートGUIモニタリング
Kernel Images は、noVNC 経由のリモート GUI インターフェースを提供する。コンテナを起動したら http://localhost:6080
(ポート 6080
noVNCインターフェースにアクセスすることで、ブラウザの状態を監視したり、スクリプトをデバッグしたり、ネットワーク要求をリアルタイムでチェックしたりすることができます(マッピング済み)。インターフェイスはマウスとキーボードの両方の操作をサポートし、リモートコントロールに適しています。
3.自動化されたハイバネーションとスナップショット
Unikernel モードでは、ネットワーク アクティビティがないときにブラウザが自動的にハイバネーションし、リソースのフットプリントが非常に少なくなります(ほぼゼロ)。ハイバネーション中、システムはブラウザの状態(クッキー、ページ位置、ウィンドウのズームなどを含む)のスナップショットを生成します。状態は復元されます:
kraft resume
スナップショット機能は、クロールやテストなどの長時間実行タスクに適しており、中断後もタスクをシームレスに継続できる。
4.人間エージェント統合
Kernel Imagesは、AnthropicのComputer Useエージェントと統合し、テキストまたは音声コマンドによるブラウザ操作をサポートします。手順
- AnthropicアカウントにサインアップしてAPIキーを取得してください。
- 環境変数の設定:
export ANTHROPIC_API_KEY=your-api-key
- エージェントスクリプトを実行する。
agent-loop.py
):python agent-loop.py
- チャット画面に「example.comを開いてスクリーンショットを撮ってください」「フォームに記入してください」などの指示を入力します。
5.超低遅延コールドスタート
Unikernelモードのコールドブート時間は20ミリ秒未満で、高速な応答時間を必要とするシナリオ(イベント駆動型の自動化タスクなど)に最適です。一方、Dockerモードのブート時間は少し遅くなりますが、それでも従来の仮想マシンを上回ります。
ほら
- ポートが
9222
歌で応える6080
無人。 - 定期的にミラーを更新し、最新機能を確認する:
docker pull kernel-images:latest
- Unikraft の導入には Linux 環境に精通している必要がありますので、公式ドキュメントを参照することをお勧めします。
- システム要件:最低2GBのRAM、10GBのディスク容量。
アプリケーションシナリオ
- ウェブ自動化テスト
開発者はKernel Imageを使用してPlaywrightスクリプトを実行し、ユーザーのアクションをシミュレートしてWebサイトの機能をテストします。サンドボックス環境はテストの分離を保証し、CI/CD統合に適しています。 - データ・クローリング
データアナリストは、Kernel Imageを導入してWebページにバッチアクセスし、構造化データを抽出します。ハイバネーションとスナップショット機能は、長時間のタスクをサポートし、サーバーのコストを削減します。 - AIエージェント開発
AI開発者は、Anthropicエージェントを使用して、自動フォーム入力やコンテンツ検索のような複雑なタスクのための音声またはテキストコントロールをサポートするインテリジェンスを構築する。 - リモートデバッグとコラボレーション
チームはnoVNCインターフェイスを通じてブラウザをリモートで監視し、クロスロケーションのコラボレーションやクラウドベースの開発に理想的で、ページのレンダリングやスクリプトの実行をリアルタイムで確認できます。
品質保証
- Kernel Imagesはどのオペレーティングシステムをサポートしていますか?
DockerモードはLinux、macOS、Windowsをサポートしています(Docker Desktopが必要)。 - サンドボックス環境を安全に保つには?
ブラウザのインスタンスは、ホストシステムから完全に分離されたDockerコンテナまたはユニカーネルで実行され、セキュリティリスクを低減します。 - 人間エージェント機能は必要ですか?
いいえ、Anthropicアカウントはベーシックブラウザ機能には必要ありません。プロキシ機能にはAPIキーが必要です。 - コールドスタートのレイテンシはどの程度ですか?
Unikernelモードは20ミリ秒未満でコールドブートし、Dockerモードは少し遅いが、それでも効率的だ。 - どうすればプロジェクト開発に参加できますか?
協議CONTRIBUTING.md
何をしたいのかわからない場合は、プルリクエストを提出するか、GitHubで問題を提起してください。