Kubernetes has deprecated Docker and plans to retire it in about a year, in version 1.22 or 1.23. This news caused many questions and misunderstandings. The Kubernetes blog has two whole articles that explain the meaning of the Changelog entry ( one and two ). To summarize everything, then for developers (those who are Dev ) nothing changes - they can still continue to use docker build to build their containers, but for the engineers responsible for operating the cluster ( Ops ), it's time to figure it out and learn a few new tools.
2016 , Kubernetes Container Runtime Interface (CRI). Kubernetes 1.3 kubelet Docker, 1.3 rkt Container Engine ( ). , Docker rkt, kubelet. rkt , container runtime kubelet, .
, β Container Runtime Interface. , Docker, kubelet, kubelet CRI. β Docker CRI. , Kubernetes - kubelet Docker. kubelet CRI, β docker-.
dockershim, 1.23.
, 2020 , 2016 Container Runtime Interface.
rkt .
RedHat CRI-O.
Docker containerd, dockerd docker-cli.
, CRI β containerd cri-o. , 2020 , Kubernetes Docker.
, . : Β« containerd cri-o?Β»
: «». containerd cri-o . , :
;
;
, ;
( bash).
, - registry. ?
, 2015 Β«Docker Β» Open Container Initiative (OCI) . Docker, containerd cri-o, , docker build , containerd cri-o. , Β« Β». , , , , .
β containerd . CI runners Docker.
, enterpise , Openshift ( Kubernetes), cri-o. RedHat , buildah. Docker, .
kaniko β Google. , , β .
, : , , , NotReady, docker ps
, docker: command not found
.
, Docker , , , CRI β by design -, .
, CRI, crictl, CLI- CRI-. crictl containerd cri-o.
, docker crictl docker ps
crictl ps
. , crictl run
, , PodSandbox, , , .
, CRI Kubernetes Kubernetes, , , Pod Runtime Interface.
crictl , kubelet. , PODSandbox , , Docker. CLI .
, . docker
( docker-cli) dockerd
(, ). crictl image save/load
, crictl . issue , crictl β CRI runtime, , registry. .
! skopeo, cri-o, ctr containerd.
, :
Β«, containerd, kubelet dockerd! Docker ( docker-cli, docker, containerd), kubelet containerd , docker
Β».
docker ps
, kubelet CRI. - , containerd , docker kubelet containerd namespaces β moby
k8s.io
( kubernetes namespaces). ctr -n <ns_name> container ls
.