cri-dockerd VS nerdctl

Compare cri-dockerd vs nerdctl and see what are their differences.

cri-dockerd

dockerd as a compliant Container Runtime Interface for Kubernetes (by Mirantis)

nerdctl

contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ... (by containerd)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
cri-dockerd nerdctl
11 33
956 7,418
2.5% 1.9%
8.4 9.6
5 days ago 4 days ago
Go Go
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

cri-dockerd

Posts with mentions or reviews of cri-dockerd. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-10.
  • How to create a 3-node kubernetes cluster and deploy an application on my ubuntu 22.04 minibox
    2 projects | dev.to | 10 Jan 2024
    $ wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.9/cri-dockerd-0.3.9.amd64.tgz $ tar zxvf cri-dockerd-0.3.9.amd64.tgz $ cd cri-dockerd $ sudo mkdir -p /usr/local/bin $ sudo install -o root -g root -m 0755 cri-dockerd/usr/local/bin/cri-dockerd $ mkdir foo; cd foo $ git clone [email protected]:Mirantis/cri-dockerd.git $ cd cri-dockerd $ sudo install packaging/systemd/* /etc/systemd/system $ sudo sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service $ sudo systemctl daemon-reload $ sudo systemctl enable --now cri-docker.socket
  • expected a 32 byte SHA-256 hash, found 24 bytes
    1 project | /r/kubernetes | 1 Jun 2023
    1 project | /r/linuxadmin | 1 Jun 2023
    I installed cri-dockerd using this documentation https://github.com/Mirantis/cri-dockerd
  • Is docker "a thing" at companies that use Kubernetes?
    1 project | /r/kubernetes | 8 Jan 2023
    99% of what you just said is completely incorrect. containerd is not a facade for Docker, in fact the Docker engine is a facade for containerd. The OCI spec is also not a facade for Docker, Docker is simply one application which can create OCI compliant images which can be executed by runtimes like runc. Kubernetes has zero facades for Docker, unless you count the optional open-source cri-dockerd.
  • Kubeadm cluster - no connections to services
    1 project | /r/kubernetes | 7 Nov 2022
    https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ Adjust netplan for static IP Adding br_netfilter and overlay to kernel Creating /etc/modules-load.d/k8s.conf with bridging and forwarding https://kubernetes.io/docs/setup/production-environment/container-runtimes/#forwarding-ipv4-and-letting-iptables-see-bridged-traffic Installing docker components https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker Installing cri-dockerd https://github.com/Mirantis/cri-dockerd Disabling swap https://graspingtech.com/disable-swap-ubuntu/ install kubeadm kubectl kubelet https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
  • Problems with setting up the cluster with kubeadm
    1 project | /r/kubernetes | 26 Oct 2022
    Im trying to learn how to set up kubernetes cluster with kubeadm. Im using official kubernetes documentation ( maybe there is a better source?). My goal is to set it up with cri-dockerd and systemd. And to be honest its quite hard task to do it. Informations are scattered arround with links and sometimes its hard to know the order which steps should be executed. I have 2 Virtualbox machines, connected together with NAT network. A master and worker node. I performed these steps on both of them: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ Adjust netplan for static IP Adding br_netfilter and overlay to kernel Creating /etc/modules-load.d/k8s.conf with bridging and forwarding https://kubernetes.io/docs/setup/production-environment/container-runtimes/#forwarding-ipv4-and-letting-iptables-see-bridged-traffic Installing docker components https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker Installing cri-dockerd https://github.com/Mirantis/cri-dockerd Disabling swap install kubeadm kubectl kubelet https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ configure kubelet cgroup driver https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/ So currently im at the configuring cgroup driver. I tried to execute kubeadm init kubeadm-config.yaml but kubeadm found 2 CRI endpoints. So i tried to point the correct one with this command kubeadm join --cri-socket /var/run/cri-dockerd.sock but i got discover:Invalid value: ::: bootstrapToken or file must be set And now im completely lost. And also im confused is this a moment for installing CNI (probably i will try with Calico) for pod communication or should i start the cluster first?
  • Kubernetes Architecture Explained: Worker Nodes in a Cluster
    4 projects | dev.to | 8 Aug 2022
    But not to worry, you can still use Docker as a container runtime in Kubernetes using the cri-dockerd adapter. cri-dockerd provides a shim for Docker Engine that lets you control Docker via the Kubernetes CRI. ****
  • CRI-dockerd is an adapter that provides a shim for Docker Engine that lets you control Docker via the Kubernetes Container Runtime Interface
    2 projects | /r/kubernetes | 16 Jun 2022
  • Kubernetes 1.24 Released: What’s New?
    3 projects | dev.to | 11 May 2022
    As of version 1.24, either one of the other supported runtimes (e.g. containerd or CRI-O) or, in case you still want to rely on Docker Engine, cri-dockerd must be used. Further information on precautions that may be necessary due to the removal of Dockershim is provided by Kubernetes in a guide.
  • Podman 4.0.0
    15 projects | news.ycombinator.com | 22 Feb 2022
    Kubernetes requires a tool which implements the Container Runtime Interface, a standardized API for starting & managing containers. This is from 2015-2016[1].

    For a while Kubernetes has included something called the "dockershim", it's own implementation of a CRI interface that, under the hood, calls Docker or Podman. There's also tools like kind[2] ("kubernetes in docker") that go further- not just hosting Kubernetes worker containers in Docker, but hosting the main kubernetes daemons also in Docker.

    Kubernetes deprecated Dockershim, formally in December 2020, but is just throwing the switch now in the upcoming 1.24, expected mid-April[3]. A company Mirantis has pledged to take over support of Dockershim[4], and is calling the new effort "cri-dockerd"[5]. This should allow Kubernetes workers to continue to run via Docker or Podman.

    Kind is unaffected, since it runs the main Kubernetes controllers in Docker, which then launch their own opencontainerd (one off the main CRI implementations) inside that Docker container, nested like, so no dockership/cri-dockerd is needed).

    [1] https://kubernetes.io/blog/2016/12/container-runtime-interfa...

    [2] https://kind.sigs.k8s.io/

    [3] https://kubernetes.io/blog/2022/01/07/kubernetes-is-moving-o...

    [4] https://www.mirantis.com/blog/mirantis-to-take-over-support-...

    [5] https://github.com/Mirantis/cri-dockerd

nerdctl

Posts with mentions or reviews of nerdctl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-16.
  • Colima k8s nix setup
    4 projects | dev.to | 16 Apr 2024
    What about the docker-cli? colima also ships with a docker-compatible cli to interact with containerd called nerdctl. We can execute the same docker cli commands like:
  • Nerdctl v2 Beta
    1 project | news.ycombinator.com | 1 Feb 2024
  • Nginx Unit – Universal web app server
    17 projects | news.ycombinator.com | 10 Sep 2023
    Using nerdctl: https://github.com/containerd/nerdctl

    I'd really disagree that compose files are somehow one-shot, or blindly modified. To the contrary, really, we have them checked in with the source code. Upon deployment to the cluster, the (running) services will be intelligently updated or replaced (in a rolling manner, causing zero downtime). LXC might be more elegant, but I have no idea what simple, file-based format I could use to let engineers describe the environment their app should run in without compose.

    I need something that even junior devs can start up with a single command, that can be placed in the VCS along with the code, and that will not require deep Linux knowledge to get running. Open for suggestions here, really.

  • Jenkins Agents On Kubernetes
    7 projects | dev.to | 4 Sep 2023
    Now since Kubernetes works off of containerd I'll be taking a different approach on handling container builds by using nerdctl and the buildkit that comes bundled with it. I'll do this on the amd64 control plane node since it's beefier than my Raspberry Pi workers for handling builds and build related services. Go ahead and download and unpack the latest nerdctl release as of writing (make sure to check the release page in case there's a new one):
  • Going through a Kubernetes training with autogenerated captions and about half are coming up like this.
    1 project | /r/kubernetes | 29 Jun 2023
    That's why nerdctl, their cli binary, is so well named.
  • Python + containerd? Who might be interested?
    2 projects | /r/Python | 27 Apr 2023
    Well, it is indeed a good option. However, containerd is a good alternative that is growing even among developers. Please see: https://github.com/containerd/nerdctl
  • How to own your own Docker Registry address
    5 projects | news.ycombinator.com | 17 Mar 2023
    Nerdctl/containerd has IPFS support :)

    https://github.com/containerd/nerdctl/blob/main/docs/ipfs.md

  • DockerHub replacement stratagy and options
    5 projects | /r/ipfs | 16 Mar 2023
    nerdctl supports IPFS for both image pulling and pushing, including encrypted images and eStargz lazy pulling. For building, the current method is a locally hosted translator so that the traditional pulls can be converted to work over IPFS. They even have docs on running it on k8s node, though if my reading is correct this isn't exactly a cloud native approach (running systemd services on each node...).
  • Docker's deleting Open Source images and here's what you need to know
    23 projects | news.ycombinator.com | 15 Mar 2023
  • Release v1.0.0 · containerd/nerdctl
    1 project | /r/devopsish | 21 Oct 2022

What are some alternatives?

When comparing cri-dockerd and nerdctl you can also consider the following projects:

containerd - An open and reliable container runtime

lima - Linux virtual machines, with a focus on running containers

cri-o - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface

podman-compose - a script to run docker-compose.yml using podman

compose-cli - Easily run your Compose application to the cloud with compose-cli

kaniko - Build Container Images In Kubernetes

mariadb-podman-socket-activation - Demo of a templated systemd user service that runs rootless Podman and starts MariaDB with socket activation

podman - Podman: A tool for managing OCI containers and pods.

enhancements - Enhancements tracking repo for Kubernetes

Moby - The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

libnetwork - networking for containers

k3s - Lightweight Kubernetes