Repolode
google

google/gvisor

Goで書かれたアプリケーションカーネル。Linuxのシステムコールをユーザー空間で仲介してコンテナをサンドボックス化し、OCIランタイムrunscとして実行できます。

スター
19,738
フォーク
2,025
未解決の Issue
1,005
最終コミット
3 時間前

これは何?

gVisorはLinuxライクなインターフェースを実装するアプリケーションカーネルで、コンテナ化されたアプリケーションとホストOSの間に位置します。ユーザー空間で動作し、メモリ安全な言語であるGoで書かれているため、コンテナからアクセスできるホストカーネルの範囲を制限でき、コンテナエスケープの脆弱性による影響を抑えられます。

gVisorにはrunscというOCIランタイムが付属し、DockerやKubernetesと連携します。既存のコンテナツールをほとんど変更せずに、サンドボックス化されたコンテナを実行できます。仮想マシンではなく通常のホストプロセスとして動作し、seccomp-bpfなどのシステムコールフィルタリングとフルVMの中間に位置するものとして設計されています。

このリポジトリは、Linux 5.6以降を搭載したx86_64およびARM64のホスト上で、ビルドコンテナ内からBazelを使ってビルドできます。また、Netstack TCP/IPスタックなどのパッケージを他のGoプロジェクトに取り込むための、Go互換ブランチも用意されています。

主な機能

  • 01ユーザー空間でLinuxライクなシステムコールインターフェースを実装
  • 02DockerおよびKubernetes向けのOCIランタイムrunscを同梱
  • 03メモリ安全な言語であるGoで実装
  • 04フルVMを使わず、通常のホストプロセスとして動作
  • 05x86_64およびARM64でビルド可能

ユースケース

  • 信頼できないコードやサードパーティ製コードをサンドボックス化されたコンテナで実行する
  • マルチテナントのKubernetesワークロードに追加の分離レイヤーを設ける
  • ユーザー空間のTCP/IPスタックNetstackをGoプロジェクトに取り込む

クイックスタート

  1. 1

    要件を確認します: Linux 5.6以降、Docker 17.09.0以降

  2. 2

    runscを含むリリース用tarballをビルドします

    make release-tarball DESTINATION=bin/
  3. 3

    tarballを/usr/local/binに展開します

    sudo tar -C /usr/local/bin -xf bin/gvisor.tar.bz2

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

  • Linux 5.6以降でのみ実行でき、ビルドできるのはx86_64とARM64のみです。
  • ソースからのビルドには、Dockerベースのビルドコンテナまたは手動で設定したBazelツールチェーンが必要です。
  • runscはgoブランチからのビルドをサポートしていません。

トピック

よくある質問

gvisor とは?
Goで書かれたアプリケーションカーネル。Linuxのシステムコールをユーザー空間で仲介してコンテナをサンドボックス化し、OCIランタイムrunscとして実行できます。 gVisorはLinuxライクなインターフェースを実装するアプリケーションカーネルで、コンテナ化されたアプリケーションとホストOSの間に位置します。ユーザー空間で動作し、メモリ安全な言語であるGoで書かれているため、コンテナからアクセスできるホストカーネルの範囲を制限でき、コンテナエスケープの脆弱性による影響を抑えられます。
gvisor は無料で使えますか?ライセンスは?
gvisor は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
gvisor は今もメンテナンスされていますか?
活発にメンテナンス中。gvisor の最終コミットは 2026年10月22日 です。
gvisor は何に使えますか?
信頼できないコードやサードパーティ製コードをサンドボックス化されたコンテナで実行する マルチテナントのKubernetesワークロードに追加の分離レイヤーを設ける ユーザー空間のTCP/IPスタックNetstackをGoプロジェクトに取り込む
gvisor のインストール方法は?
要件を確認します: Linux 5.6以降、Docker 17.09.0以降 runscを含むリリース用tarballをビルドします: make release-tarball DESTINATION=bin/ tarballを/usr/local/binに展開します: sudo tar -C /usr/local/bin -xf bin/gvisor.tar.bz2
gvisor はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/google/gvisor

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト