containerd与docker的区别是什么
时间:2021-12-29 09:53
区别:1、containerd不需要经过dockershim,所以调用链更短,docker需要经过所以调用链更长;2、docker调用cni是“docker-shim”,containerd调用cni是“containerd-cri”。 本教程操作环境:linux7.3系统、docker-1.13.1版、Dell G3电脑。 containerd与docker的区别是什么 在使用k8s时,使用docker和containerd的调用链如下所示: 不难看出,使用containerd时,调用链更短,不再需要经过dockershim和docker 数据目录 相信大家都知道docker的数据目录默认是在/var/lib/docker目录下;而切换到containerd时,数据目录默认为/var/lib/containerd 日志 当我们在使用k8s时,如果使用了docker作为运行时,其实容器程序日志的落盘是由docker来负责的。/var/log/pod和/var/log/container下的日志文件会软连接到/var/lib/docker下对应的日志文件,如果还需要对日志做一些参数配置,直接修改docker配置文件即可;而如果我们现在使用containerd作为运行时,则容器日志的落盘将由kubelet来负责,/var/log/container下的日志文件会软连接到/var/log/pod下的日志文件,如果需要调整日志参数,则需要修改kubelet相关配置 CNI 当使用docker作为运行时时,kubelet中的docker-shim负责调用cni;而当使用containerd作为运行时时,containerd中内置的containerd-cri负责调用cni 流服务 熟悉k8s的朋友都知道,kubectl exec 和 kubelet log等命令需要通过apiserver与容器通信,这其中就涉及到了流服务。而docker API本身支持,kubelet中的docker-shim通过docker API流转发;但containerd却要对此进行单独配置 推荐学习:《docker视频教程》 以上就是containerd与docker的区别是什么的详细内容,更多请关注gxlcms其它相关文章![plugins."io.containerd.grpc.v1.cri".cni]
bin_dir = "/opt/cni/bin"
conf_dir = "/etc/cni/net.d"
[plugins."io.containerd.grpc.v1.cri"]
stream_idle_timeout = "4h0m0s"
stream_server_address = "127.0.0.1"
stream_server_port = "0"
enable_tls_streaming = false