DEV Community

Cover image for Wait, Docker is deprecated in Kubernetes now? What do I do?

Wait, Docker is deprecated in Kubernetes now? What do I do?

Kohei Ota on December 02, 2020

tl;dr For developers Don't panic, Docker containers and images are still alive. It's not that it will change everything. Als...
Collapse
 
__mrvik__ profile image
MrViK

Another OCI Runtime -> crun
It's faster than runc (the performance gains are notable when starting containers).
Also it supports cgroups v2, runc also added support on v1.0.0-93 (which has not been launched?)

podman + crun do work very well (also podman can launch rootless containers) so I prefer to use them instead of Docker + runc.

Collapse
 
sq5rix profile image
Tom

I just moved to podman/crun due to cgroups problem
Docker phases out?

Collapse
 
inductor profile image
Kohei Ota

Docker 20.10 will support cgroups v2

Collapse
 
__mrvik__ profile image
MrViK

Will, in the future. Podman does it right now and rootless containers are a huge improvement on process isolation

Thread Thread
 
inductor profile image
Kohei Ota

Docker also supports rootless now.

Collapse
 
jefftriplett profile image
Jeff Triplett (he/him)

PSA: This doesn't mean what most people think it means. kubernetes.io/blog/2020/12/02/dont...

Collapse
 
cawoodm profile image
Marc

For dummies like me:

  • Your Kubernetes > v1.20 (or whatever) won't use the Docker container runtime BUT
  • Your Docker-built containers will still run in Kubernetes... but with a different container runtime (e.g. ContainerD)

TL/DR: The Docker Container Runtime is history - your Docker-built containers will still run.

Collapse
 
akito13 profile image
Akito

Just adding my 2 cents from my own experience.

At work, we are using classical RKE Rancher with Kubernetes with Docker and k3s Rancher with Kubernetes with containerd. So I have experience with both. The problem is, that in our case it often seemed like containerd, at least the way it is used with Kubernetes, is not that stable and reliable. It showed us a lot of bugs and issues, which the legacy Kubernetes never had shown.

So I'm asking myself, how can they suddenly guarantee that all this new stuff is even production ready, when we had not too many but quite substantial issues with it?

(Perhaps the issue was mainly to be found in the whole Rancher thing, but we cannot confirm this.)

Collapse
 
kolaente profile image
kolaente

Great overview, thanks!

Having more features while you never use, itself can be a security risk. The less features you have, the smaller the attack surface becomes.

I found this while very true kind of ironic since we're talking about kubernetes here which in itself is a very complex system. That does not invalidate the point you're making though, it just makes another case for why less complexity in an already complex system is probably a good idea.

Collapse
 
starpebble profile image
starpebble

Fantastic post. My feedback: I hope this particular Kubernetes rearchitecture saves us all time. We are getting closer to making it realistic to have a container format specific to my favorite programming language. No need for us to all be the same.

Collapse
 
anmalkov profile image
Andrew Malkov

Both containerd and CRI-O know how to pull docker images and run them and Docker Images Manifest V2 and OCI image specification are almost the same, so we dont need to worry now.
But, if you want to know how to live without Docker I suggest you this video - How to live without Docker for developers - Part 1 | Migration from Docker to Buildah and Podman. Or just search Without Docker on YouTube.

Collapse
 
jrefi profile image
Justin Refi

So now I have to learn yet another framework (Buildah, Podman, etc) instead of just doing the easy thing and running Docker in Docker. The Kubernetes community sure loves creating new projects.

Collapse
 
warns profile image
Mert Alnuaimi

Seriously, calm down #kubernetes and #docker, what's going on guys?

Collapse
 
tylerauerbeck profile image
Tyler Auerbeck

A nice reference on the kubernetes blog as well for those interested in knowing more: kubernetes.io/blog/2020/12/02/dont...

Collapse
 
wizlee profile image
Wiz Lee

Great reference!

Collapse
 
duffn profile image
Nicholas Duffy

How does one tell what runtime is currently being used in a cluster?

Collapse
 
inductor profile image
Kohei Ota

kubectl get node -o wide

Collapse
 
duffn profile image
Nicholas Duffy

I never realized that was there. Thanks!

Collapse
 
mhalano profile image
Marcos Alano

There is any command I can run in my cluster to check if dockershim is being used?

Collapse
 
henrik_oliveira profile image
Henrique Oliveira

So, Just dockershim was deprecated?