🚢 Containerization
Everything worth-noting for containerization.
Runtime
Low-level CLI that implements the OCI Runtime Specification opencontainers/runtime-spec (0). Responsible for actually starting the container on system.
You wouldn't typically directly operate on those.
Overhead | Safety | Written in | Notes | |
---|---|---|---|---|
opencontainers/runc (0) | Baseline | Go | The OG from Docker. Now seperate as a component that also serves many other runtimes. | |
containers/crun (0) | Lower | C | ||
kata-containers/kata-containers (0) | Slightly higher | Fully isolated kernel |
Engines
Engine | CLI | GUI | Default runtime | Rootless | Pod abstraction | Systemd support | Notes |
---|---|---|---|---|---|---|---|
moby/moby (0) (dockerd ) | docker/cli (0) | Docker Desktop | runc | ⚠️ Experimental | ❌ | ❌ | |
containers/podman (0) | podman | podman-desktop/podman-desktop (0) | crun | ✅ | ✅ | ✅ | |
containerd/containerd (0) | containerd/nerdctl (0) | - | runc | There's also a low-level CLI called ctr | |||
cri-o/cri-o (0) | crictl from Kubernetes | - | runc | Used by Kubernetes, not meant for direct use | |||
apple/containerization (0) | apple/container (0) | - | Virtualization.framework |
Although the CLI is different, but they have similar usage as docker.
There's also rancher-sandbox/rancher-desktop (0) that can operates dockerd
or containerd
and managing Kubernetes.
Base Image
Misc
- abiosoft/colima (0): A docker alternative that built on top of lima-vm/lima (0). Actually VM, not containers.