How to install docker engine and use contianerd and runc instead of containerd.io?

Hi,

The node is running Kubernetes, therefore contianerd and runc is already installed. Is there a way to install docker to run on the same node while using the already existing runtime?

I have verified docker to work without installing the contianerd.io package by installing docker-ce and other packages directly, but the dependency warning in Debian will exist since containerd.io was not installed and prevent other apt operations.

OS: Debian Bookworm

Is your problem that Kubernetes requires a different version of containerd.io? Or is the package name different on Debian?

You could install Docker from binaries as described in the documentation, but you need to be aware that using Docker and Kubernetes on the same machine could cause problems to your Kubernetes cluster. Docker will change IP tables rules so it could break network policies in Kubernetes.

I am aware that Docker interacts with IP tables directly, as noted in the section about ufw in the install page. However, it did work fine when I run it along side Kubernetes. Perhaps an edge case will occur and break something in the future.

Kubernetes doesn’t require a containerd dependency to be installed actually, just the ability to interact via runc. I guess it is possible to use containerd.io instead, but cni plugins will have to be added too.