Debian – How to Install Docker-CE Alongside Kubernetes Using Containerd?

debiandockerkubernetes

debian/11, kubernetes/1.26.1

I have a Debian 11 host running as the control plane node for a Kubernetes deployment. This deployment uses containerd as the container engine. I'd like to install docker-ce on that host. When I try to do so, apt wants to remove containerd:

[chris@alpha ~]$ sudo apt install docker-ce
[sudo] password for chris:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  libc-devtools
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
  containerd.io
Suggested packages:
  aufs-tools cgroupfs-mount | cgroup-lite
The following packages will be REMOVED:
  containerd runc

It also mentions installing containerd.io, but I can't find any information as to whether this is package is a 1:1 replacement for containerd… any thoughts?

Best Answer

Yes, containerd and runc must be removed prior to installing Docker-CE on a Debian 11 host serving as the control plane node for a Kubernetes deployment. The containerd.io package that is being recommended is a 1:1 replacement for containerd. Docker provides the containerd.io package, which is the current open source containerd project implementation. It is recommended for use with Kubernetes and is compatible with the Kubernetes Container Runtime Interface (CRI)..you can find more information in this doc.

To install Docker-CE alongside Kubernetes on Debian when using containerd, you will first need to add the Docker repository to your Debian server. You can do this by running the following command:

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian 
$(lsb_release -cs) stable"

Once you have added the Docker repository, you can install Docker-CE with the following command:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

After installing Docker-CE, you can then configure Kubernetes to use containerd as its runtime and enable Docker for certain workloads.

Attaching a similar stack question for your reference.