All Projects → google → Gvisor

google / Gvisor

Licence: apache-2.0
Application Kernel for Containers

Programming Languages

go
31211 projects - #10 most used programming language
C++
36643 projects - #6 most used programming language
Starlark
911 projects
assembly
5116 projects
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Gvisor

Cilium
eBPF-based Networking, Security, and Observability
Stars: ✭ 10,256 (-14.62%)
Mutual labels:  kernel, containers
Firecracker Containerd
firecracker-containerd enables containerd to manage containers as Firecracker microVMs
Stars: ✭ 1,130 (-90.59%)
Mutual labels:  containers, oci
Runc
CLI tool for spawning and running containers according to the OCI specification
Stars: ✭ 8,729 (-27.33%)
Mutual labels:  containers, oci
Runv
Hypervisor-based Runtime for OCI
Stars: ✭ 798 (-93.36%)
Mutual labels:  containers, oci
Image Spec
OCI Image Format
Stars: ✭ 1,851 (-84.59%)
Mutual labels:  containers, oci
Crun
A fast and lightweight fully featured OCI runtime and C library for running containers
Stars: ✭ 990 (-91.76%)
Mutual labels:  containers, oci
Containerd
An open and reliable container runtime
Stars: ✭ 9,956 (-17.12%)
Mutual labels:  containers, oci
Frakti
The hypervisor-based container runtime for Kubernetes.
Stars: ✭ 630 (-94.76%)
Mutual labels:  kernel, containers
Go Digest
Common digest package used across the container ecosystem
Stars: ✭ 99 (-99.18%)
Mutual labels:  containers, oci
Artifacts
OCI Artifacts
Stars: ✭ 84 (-99.3%)
Mutual labels:  containers, oci
Distribution
The toolkit to pack, ship, store, and deliver container content
Stars: ✭ 6,445 (-46.35%)
Mutual labels:  containers, oci
Ignite
Ignite a Firecracker microVM
Stars: ✭ 1,954 (-83.73%)
Mutual labels:  containers, oci
Buildxl
Microsoft Build Accelerator
Stars: ✭ 676 (-94.37%)
Mutual labels:  kernel, sandbox
Clair
Vulnerability Static Analysis for Containers
Stars: ✭ 8,356 (-30.44%)
Mutual labels:  containers, oci
Ksm
A fast, hackable and simple x64 VT-x hypervisor for Windows and Linux. Builtin userspace sandbox and introspection engine.
Stars: ✭ 673 (-94.4%)
Mutual labels:  kernel, sandbox
Kata Containers
Kata Containers version 2.x repository. Kata Containers is an open source project and community working to build a standard implementation of lightweight Virtual Machines (VMs) that feel and perform like containers, but provide the workload isolation and security advantages of VMs. https://katacontainers.io/
Stars: ✭ 1,053 (-91.23%)
Mutual labels:  containers, oci
Sysbox
Sysbox repository
Stars: ✭ 596 (-95.04%)
Mutual labels:  sandbox, containers
Tectonic Installer
Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more
Stars: ✭ 599 (-95.01%)
Mutual labels:  containers, oci
Rkt
[Project ended] rkt is a pod-native container engine for Linux. It is composable, secure, and built on standards.
Stars: ✭ 8,870 (-26.16%)
Mutual labels:  containers, oci
Selinux
common selinux implementation
Stars: ✭ 107 (-99.11%)
Mutual labels:  containers, oci

gVisor

Build status Issue reviver gVisor chat code search

What is gVisor?

gVisor is an application kernel, written in Go, that implements a substantial portion of the Linux system surface. It includes an Open Container Initiative (OCI) runtime called runsc that provides an isolation boundary between the application and the host kernel. The runsc runtime integrates with Docker and Kubernetes, making it simple to run sandboxed containers.

Why does gVisor exist?

Containers are not a 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. While using a single, shared kernel allows for efficiency and performance gains, it also means that container escape is possible with a single vulnerability.

gVisor is an application kernel for containers. It limits the host kernel surface accessible to the application while still giving the application access to all the features it expects. Unlike most kernels, gVisor does not assume or require a fixed set of physical resources; instead, it leverages existing host kernel functionality and runs as a normal process. In other words, gVisor implements Linux by way of Linux.

gVisor should not be confused with technologies and tools to harden containers against external threats, provide additional integrity checks, or limit the scope of access for a service. One should always be careful about what data is made available to a container.

Documentation

User documentation and technical architecture, including quick start guides, can be found at gvisor.dev.

Installing from source

gVisor builds on x86_64 and ARM64. Other architectures may become available in the future.

For the purposes of these instructions, bazel and other build dependencies are wrapped in a build container. It is possible to use bazel directly, or type make help for standard targets.

Requirements

Make sure the following dependencies are installed:

Building

Build and install the runsc binary:

mkdir -p bin
make copy TARGETS=runsc DESTINATION=bin/
sudo cp ./bin/runsc /usr/local/bin

Testing

To run standard test suites, you can use:

make unit-tests
make tests

To run specific tests, you can specify the target:

make test TARGETS="//runsc:version_test"

Using go get

This project uses bazel to build and manage dependencies. A synthetic go branch is maintained that is compatible with standard go tooling for convenience.

For example, to build and install runsc directly from this branch:

echo "module runsc" > go.mod
GO111MODULE=on go get gvisor.dev/gvisor/runsc@go
CGO_ENABLED=0 GO111MODULE=on sudo -E go build -o /usr/local/bin/runsc gvisor.dev/gvisor/runsc

Subsequently, you can build and install the shim binary for containerd:

GO111MODULE=on sudo -E go build -o /usr/local/bin/containerd-shim-runsc-v1 gvisor.dev/gvisor/shim

Note that this branch is supported in a best effort capacity, and direct development on this branch is not supported. Development should occur on the master branch, which is then reflected into the go branch.

Community & Governance

See GOVERNANCE.md for project governance information.

The gvisor-users mailing list and gvisor-dev mailing list are good starting points for questions and discussion.

Security Policy

See SECURITY.md.

Contributing

See Contributing.md.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].