オープンソースプロジェクト
google/gvisor avatar
google/gvisor

gVisorのrunscでコンテナとホストの境界を狭める

プロジェクト概要:コンテナ用のアプリケーション カーネル。 runsc ランタイムは Docker および Kubernetes と統合されているため、サンドボックス コンテナーの実行が簡単になります。

スター 19,328フォーク 1,987GoApache-2.0

ひと目でわかる

これは何?
google/gvisorのユーザー空間application kernel、OCI runtime runsc、DockerとKubernetes統合を、source buildとテスト条件から検討する。
誰に向いている?
gVisorはホストOSと実行アプリケーションの間に分離層を置くapplication kernelで、Linux-like interfaceをユーザー空間のGoプロセスとして実装するとREADMEにある。OCI runtimeのrunscがDockerとKubernetesの既存ツールに接続する。
商用利用できる?
できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。直近 1 日以内に新しいコミットがあります。
何の言語で書かれている?
主に Go です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

gVisorがLinux-like interfaceを再実装する位置

google/gvisor の README はプロジェクトを「Application Kernel for Containers」と説明しています。ここではリポジトリで確認できる事実だけを整理します。star 数やバッジは注目度の手掛かりであり、品質の証明ではありません。「What is gVisor?」には次の説明があります。gVisor provides a strong layer of isolation between running applications and the host operating system. It is an application kernel that implements a [Linux-like interface][linux].。これは範囲の説明であり、本番検証の結果ではありません。

gVisorはホストOSと実行アプリケーションの間に分離層を置くapplication kernelで、Linux-like interfaceをユーザー空間のGoプロセスとして実装するとREADMEにある。OCI runtimeのrunscがDockerとKubernetesの既存ツールに接続する。 google/gvisorのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

runscと通常のコンテナツールの接続

README の「What isn't gVisor?」にある内容から、用途が合うかを先に判断できます。gVisor is also not a VM in the everyday sense of the term (e.g.。目的が違うなら、人気だけで採用する理由にはなりません。プロジェクト名やコマンドは原文のまま残し、一次資料へ戻って用語を確認できるようにしています。 README には次の確認可能な項目もあります。gVisor is not a syscall filter (e.g. seccomp-bpf), nor a wrapper over。初回テストの材料にはなりますが、実際の環境での確認を省略する理由にはなりません。

gVisorはseccomp-bpfのようなsyscall filterでも、firejailやAppArmorのwrapperでも、VirtualBoxやQEMUのようなVMでもないと明記される。ホストkernelへアプリケーションが触れる面を減らす設計で、コンテナへ渡すデータの選別までは代行しない。 google/gvisorのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

seccompとVMではない第三の構成

動作の説明は「What isn't gVisor?」など複数の箇所に分かれています。確認できる情報は次の通りです。Linux isolation primitives (e.g. firejail, AppArmor, etc.).。書かれていない構成、性能、セキュリティを推測で補いません。導入時はディレクトリ、設定ファイル、release 履歴を確認してください。

導入要件はLinux 5.6以上とDocker 17.09.0以上。make release-tarball DESTINATION=bin/でrunsc、containerd-shim-runsc-v1、sidecar binaryを含むtarballを作り、sudo tar -C /usr/local/bin -xf bin/gvisor.tar.bz2で展開する。 google/gvisorのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

release-tarballを作る依存関係

初回導入は README の入口から始めます。確認できるコマンドは次の通りです。

make release-tarball DESTINATION=bin/ sudo tar -C /usr/local/bin -xf bin/gvisor.tar.bz2

実行可能なコマンドがない場合は手順を作らず、「What isn't gVisor?」で依存関係、待受ポート、初回設定を確認します。

特定ライブラリはmake build TARGETS="//pkg/tcpip:tcpip"で指定できる。ビルド依存はbuild containerで包める一方、Bazelを直接使う場合はimages/default/Dockerfileと.bazelversionを参照するようREADMEが求めている。 google/gvisorのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

Bazel、Make、unit-testsの実行対象

日常運用は公式文書の範囲に限ります。「What isn't gVisor?」にはgVisor takes a distinct third approach, providing many security benefits of VMs while maintaining the lower resource footprint, fast startup, and flexibility of regular userspace applications.とあります。設定、環境変数、権限、データ保存先は明記されたものだけを扱います。未記載の既定値は隔離環境で確認し、戻せる設定を保存してください。 同じ資料にはLook at the build dockerfile for the canonicalともあります。

標準テストはmake unit-testsとmake tests、対象を絞る場合はmake test TARGETS="//runsc:version_test"またはbazel test //runsc:version_testだ。macOSでは一部packageのテストにbazel 8とHomebrewのbazel@8が必要とされる。 google/gvisorのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

goブランチと対応アーキテクチャの制限

制約も確認が必要です。現在の資料からは、google/gvisor の互換表、性能基準、サービス保証、長期サポートを確認できません。README の記載は「Containers are not a [sandbox][sandbox]. While containers have revolutionized how we develop, package, and deploy applications, using them to run untrusted or potentially malicious code without additional isolation is not a good idea.」です。不明点は採用記録の検証項目として残し、断定に変えないでください。

x86_64とARM64でbuildできるとされる。goブランチは外部packageやNetstack利用向けのbest effortで、runsc buildはunsupported、開発はmasterで行うという制約が明記される。ここはGo moduleとしてそのまま使えるという誤解を避ける箇所だ。 google/gvisorのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

Apache-2.0とrelease-20260817.0

ライセンスはメタデータと LICENSE に基づき、SPDX は Apache-2.0 です。再配布や改変の条件を確認する情報であり、安全審査の代わりではありません。認証情報、公開範囲、ログ、依存ライブラリの扱いは別途確認が必要です。

ライセンスはApache-2.0、直近リリースはrelease-20260817.0。未信頼コードの追加分離を求め、DockerまたはKubernetes runtimeを運用できるチームに向くが、VMの代替と決め打ちはできない。まず同じコンテナをrunscで起動し、make testsと対象アプリのsyscall互換性を確認する。 google/gvisorのREADMEとメタデータに基づく判断であり、実行結果や性能測定を意味しない。導入範囲はここで挙げた形式、コマンド、設定ファイルに限って確認する。

編集部の結論

gVisorはホストOSと実行アプリケーションの間に分離層を置くapplication kernelで、Linux-like interfaceをユーザー空間のGoプロセスとして実装するとREADMEにある。OCI runtimeのrunscがDockerとKubernetesの既存ツールに接続する。 x86_64とARM64でbuildできるとされる。goブランチは外部packageやNetstack利用向けのbest effortで、runsc buildはunsupported、開発はmasterで行うという制約が明記される。ここはGo moduleとしてそのまま使えるという誤解を避ける箇所だ。 ライセンスはApache-2.0、直近リリースはrelease-20260817.0。未信頼コードの追加分離を求め、DockerまたはKubernetes runtimeを運用できるチームに向くが、VMの代替と決め打ちはできない。まず同じコンテナをrunscで起動し、make testsと対象アプリのsyscall互換性を確認する。 採用するのはこの条件を受け入れられる利用者で、資料にない保証や別用途を求める利用者には向かない。最初に確認する対象はgoogle/gvisorのREADMEに記載された具体的な入力、コマンド、設定、リリース番号である。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート