Runc Alternatives
-
crun
A fast and lightweight fully featured OCI runtime and C library for running containers
-
jib
🏗 Build container images for your Java applications.
-
Scout
Get performance insights in less than 4 minutes. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
-
cni
Container Network Interface - networking for Linux containers
-
storage
-
go
The Go programming language
-
dive
A tool for exploring each layer in a docker image
-
Fiber
⚡️ Express inspired web framework written in Go
-
kaniko
Build Container Images In Kubernetes
-
podman
Podman: A tool for managing OCI containers and pods
-
sops
Simple and flexible tool for managing secrets
-
buildkit
concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit
-
skopeo
Work with remote images registries - retrieving information, images, signing content
-
virtual-kubelet
Virtual Kubelet is an open source Kubernetes kubelet implementation.
-
runtime-spec
OCI Runtime Specification
-
gatekeeper
Gatekeeper - Policy Controller for Kubernetes
-
rules_docker
Rules for building and handling Docker images with Bazel
-
distribution-spec
OCI Distribution Specification
-
railcar
RailCar: Rust implementation of the Open Containers Initiative oci-runtime (by drahnr)
-
gopg
A minimal microservice written in Go that executes Go programs. This microservice can be used to set-up local go learning environment at your workspace/school. You can also use the provided zero-configuration docker-image for quick deployments.
-
actions
Posts
-
Podman: A Daemonless Container Engine
Remember that runc contains quite a few lines of C:
https://github.com/opencontainers/runc/blob/4d4d19ce528ac40c...
https://github.com/opencontainers/runc/blob/4d4d19ce528ac40c...
-
Crun: Fully featured OCI runtime and C library for running containers
The particular implementation detail I was referring to: https://github.com/opencontainers/runc/tree/master/libcontai...
The distinction I was attempting to make is whether or not C source code is required in your Go project to fully implement a container runtime.
-
Building a secure/sandboxed environment for executing untrusted code
gVisor by Google is a userspace application kernel written in Go. Userspace kernel is a software that runs completely in user-mode and has less privilege (since it runs in user-mode). It also acts as a kernel emulation layer, that means, it can act as a fake kernel and can receive and process system-calls, thus hiding the host kernel. gVisor is compatible with OCI and provides a OCI runtime called runsc that can be used by container management tool like docker as the underlying runtime. (docker uses runc as the default runtime).
-
Infrastructure Engineering - Diving Deep
Kubernetes supports multiple container runtimes due to its adoption of pod as the basic unit of scheduling. While Docker was one of the runtimes so far, it has been recently deprecated in favor of better standards like CRI removing the shim. The other recognized runtimes would be containerd, or even a low-level runtime like runc. You can read more about how they compare in this post or even this. As they mention, today making a call to Docker engine will make a call to containerd which inturn makes a call to runc. The main difference lies in the fact that every runtime has a different level of abstractions and ultimately the lowest level of the hierarchy is going to be LXC which is based on C or runc which is based on Golang.
-
It's Time to Say Goodbye to Docker
runc is the most popular container runtime created based on OCI container runtime specification. It's used by Docker (through containerd), Podman and CRI-O, so pretty much everything expect for LXD (which uses LXC). There's not much else I can add. It's default for (almost) everything, so even if you ditch Docker after reading this article, you will most likely still use runc.
Stats
opencontainers/runc is an open source project licensed under Apache License 2.0 which is an OSI approved license.