An application kernel for containers that provides strong isolation by implementing a Linux-like interface in memory-safe Go.
gVisor is an application kernel that provides strong isolation for containers by implementing a Linux-like interface in userspace using memory-safe Go. It addresses the security limitations of traditional containers, where a single kernel vulnerability can lead to container escape, by creating a secure sandbox between applications and the host OS. The project includes an OCI-compatible runtime called `runsc` that integrates with Docker and Kubernetes.
Developers and operators running untrusted or potentially malicious code in containers who need stronger isolation than traditional containers provide. Infrastructure teams managing multi-tenant container environments where security boundaries are critical.
gVisor offers VM-like security with container-like performance by running as a userspace application kernel. Unlike syscall filters or wrapper tools, it implements a complete Linux interface in memory-safe Go, providing defense-in-depth against kernel vulnerabilities while maintaining compatibility with existing container ecosystems.
Application Kernel for Containers
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Written in Go, which inherently reduces memory-related security vulnerabilities common in C-based kernels, as highlighted in the README's emphasis on safety.
Includes the OCI-compatible `runsc` runtime that works directly with Docker and Kubernetes, allowing easy adoption without major tooling changes.
Implements a userspace application kernel that limits host kernel exposure, providing VM-like security benefits without full virtualization overhead.
Runs as a normal process leveraging the host kernel, avoiding fixed resource assignments and maintaining container-like startup times.
Emulating Linux syscalls in userspace adds latency and can reduce throughput for I/O-intensive or latency-sensitive applications, a trade-off inherent in its design.
Requires specific dependencies like Docker 17.09.0+, Linux 4.14.77+, and Bazel, with a multi-step installation process that can be cumbersome for quick deployments.
May not support all system calls or kernel features, potentially breaking applications that rely on less common or proprietary extensions, as it implements a 'Linux-like' interface.