前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker与Containerd使用区别

Docker与Containerd使用区别

作者头像
YP小站
发布2022-04-18 18:34:29
1.9K0
发布2022-04-18 18:34:29
举报
文章被收录于专栏:YP小站YP小站

前言

Kubernetes1.24 版本里弃用并移除 docker shim,这导致 1.24 版本开始不在支持 docker 运行时。大部分用户会选择使用 Containerd 做为Kubernetes运行时。

❝PS: docker-ce 底层就是 Containerd

使用 Containerd 时,kubelet 不需要通过 docker shim 调用,直接通过 Container Runtime Interface (CRI) 与容器运行时交互。减少调用层,并且也减少很多bug产生。

下面来讲讲 docker 与 Containerd 使用有那些方面不同。

Docker 和 Containerd 常用命令比较

镜像相关操作

Docker

Containerd

显示本地镜像列表

docker images

crictl images

下载镜像

docker pull

crictl pull

上传镜像

docker push

删除本地镜像

docker rmi

crictl rmi

查看镜像详情

docker inspect IMAGE-ID

crictl inspect IMAGE-ID

容器相关操作

Docker

Containerd

显示容器列表

docker ps

crictl ps

创建容器

docker create

crictl create

启动容器

docker start

crictl start

停止容器

docker stop

crictl stop

删除容器

docker rm

crictl rm

查看容器详情

docker inspect

crictl inspect

attach

docker attach

crictl attach

exec

docker exec

crictl exec

logs

docker logs

crictl logs

stats

docker stats

crictl stats

Pods相关操作

Docker

Containerd

显示POD列表

crictl pods

查看POD详情

crictl inspectp

运行POD

crictl runp

停止POD

crictl stopp

容器日志和相关参数配置差异

功能

Docker

Containerd

存储路径

如果 Docker 作为 K8S 容器运行时,容器日志的落盘将由 docker 来完成,保存在类似/var/lib/docker/containers/$CONTAINERID 目录下。Kubelet 会在 /var/log/pods 和 /var/log/containers 下面建立软链接,指向 /var/lib/docker/containers/$CONTAINERID 该目录下的容器日志文件。

如果 Containerd 作为 K8S 容器运行时, 容器日志的落盘由 Kubelet 来完成,保存至 /var/log/pods/$CONTAINER_NAME 目录下,同时在 /var/log/containers 目录下创建软链接,指向日志文件。

配置参数

在 docker 配置文件中指定:"log-driver": "json-file", "log-opts": {"max-size": "100m","max-file": "5"}

方法一:在 kubelet 参数中指定:--container-log-max-files=5 --container-log-max-size="100Mi" ;方法二:在 KubeletConfiguration 中指定:"containerLogMaxSize": "100Mi", "containerLogMaxFiles": 5

容器日志保存到数据盘

把数据盘挂载到 "data-root"(缺省是 /var/lib/docker)即可。

创建一个软链接 /var/log/pods 指向数据盘挂载点下的某个目录 或者 通过挂载目录,把 /var/log/pods 目录挂载到数据盘上。

CNI 网络

功能

Docker

Containerd

谁负责调用 CNI

Kubelet 内部的 docker-shim

Containerd 内置的 cri-plugin(containerd 1.1 以后)

如何配置 CNI

Kubelet 参数 --cni-bin-dir 和 --cni-conf-dir

Containerd 配置文件(toml):[plugins.cri.cni] bin_dir = "/opt/cni/bin" conf_dir = "/etc/cni/net.d"

参考链接

  • https://cloud.tencent.com/document/product/457/35747
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 YP小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Docker 和 Containerd 常用命令比较
  • 容器日志和相关参数配置差异
  • CNI 网络
  • 参考链接
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档