Containerd笔记2025

Containerd笔记

Containerd 是一个行业标准的容器运行时组件,目前Containerd是Kubernetes默认的容器运行时。

在早期,Docker 曾是 Kubernetes 的容器运行时,Docker内部包含了Containerd,但随着 Docker 的发展,其复杂性逐渐增加,尤其是 Docker Engine 包含了太多的功能(如 Docker Hub、Swarm 等),这导致它与 Kubernetes 的集成变得不够轻量化。

自Kubernetes 1.20版本开始,Kubernetes 弃用Docker,改为接入更轻量、解耦的Containerd,Containerd在K8s下启动时间、使用内存、占用CPU均比Docker要低。

学习资料

Containerd官网手册

安装步骤

安装yum-util并设置为国内阿里下载源:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Containerd:

sudo yum install -y containerd

启动Containerd并设置自启动:

sudo systemctl start containerd
sudo systemctl enable containerd

查看Containerd版本信息:

containerd --version

Containerd相关初始化配置:

# 创建 Containerd 的配置文件:
sudo mkdir -p /etc/containerd/
sudo containerd config default > /etc/containerd/config.toml

# 编辑 /etc/containerd/config.toml 文件,启用沙盒镜像(如 pause 镜像):
vim nano /etc/containerd/config.toml

# config.toml找到如下代码块,将SystemdCgroup = false改成SystemdCgroup = true
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  SystemdCgroup = true
# config.toml找到sandbox_image = "registry.k8s.io/pause:3.6",将其改成aliyun的地址:
sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google-containers/pause:3.6"
# sandbox_image这是 Containerd 使用的沙盒镜像(通常是 pause 镜像)。将其替换为阿里云的镜像地址,以加快下载速度。

# 以上配置完成后,重新加载配置
sudo systemctl daemon-reload
sudo systemctl restart docker

拉取测试镜像,可以访问国内的 https://docker.aityp.com/ 这个地址,找到busybox测试镜像:

ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/e2e-test-images/busybox:1.29-4
ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/e2e-test-images/busybox:1.29-4  registry.k8s.io/e2e-test-images/busybox:1.29-4

查看镜像拉取结果:

ctr images list

Containerd命令

查看所有镜像:

ctr images list

拉取镜像:

ctr images pull <镜像地址>

删除镜像:

ctr images rm <镜像ID或名称>

运行容器:

ctr tasks run --image <镜像地址> <容器名称>

查看所有容器:

ctr tasks list

停止容器:

ctr tasks kill -s SIGTERM <容器ID>

启动已停止的容器:

ctr tasks start <容器ID>

查看容器状态:

ctr tasks logs <容器ID>

查看容器详细信息:

ctr containers inspect <容器ID>

删除容器:

ctr tasks delete <容器ID>

查看网络:

ctr network ls

创建网络:

ctr network create --driver <驱动> <网络名称>

删除网络:

ctr network rm <网络名称>

查看容器的文件系统:

ctr content list
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容