Containerd概述
Containerd(Container Daemon)是一个开源的容器运行时,他提供了一种标准化的方式来管理容器的生命周期。该项目最初由Docker开发团队创建的,并在后来成为一个独立的项目,被纳入了Cloud Native Computing Foundation(CNCF,云原生计算基金会)的孵化项目中。
容器生命周期管理
- Containerd管理容器的生命周期,包括容器的创建、运行、暂停、恢复、停止和销毁等操作
标准化接口
- Containerd提供了一个标准化的容器进行时(运行环境)接口,使得它可以与多个容器编排系统和工具集成,例如kubernetes、Docker Compose。
镜像管理
- 支持容器镜像的拉取、推送、保存和加载等操作。Containerd使用OCI(Open Containerd Initiative)规范定义容器镜像的格式
插件体系结构
- Containerd具有可扩展的插件体系结构,允许用户通过插件来扩展其功能,例如存储驱动,网络插件等
跨平台支持
- Containerd可以在不同的操作系统上运行,从而提供跨平台支持
Containerd的特点和功能
- 与kubernetes集成
- Containerd作为kubernetes的默认容器运行时,与kubernetes紧密集成,为容器工作负载的管理提供良好的支持
- 安全性和隔离
- Containerd实现了严格的容器隔离和安全措施,确保容器的隔离性以及对主机系统的安全性
Containerd核心组件
- Storage
- content
- Snapshot
- Diff
- Metadata
- Images
- Containers
- Runtime
- Tasks
- Events
安装Containerd
- 部署阿里的安装仓库
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
- 部署Docker的仓库,方便安装Containerd(不需要安装Docker即可)
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
sudo yum makecache fast
- 清理yum缓存
- yum clean all
- 查看Containerd的相关信息
- 查看Containerd的历史版本
- 安装最新版Containerd,直接输入containerd.io即可· · 1
- 修改Containerd的配置文件,它本身有一个配置文件,但是不是我们真正所需要的,所以需要使用命令调取配置文件信息,并将其替换为真正的配置文件信息
- 调取Containerd配置文件信息
-
- 将其重定向到配置文件的文件当中
- 添加镜像信息到以替换过的配置文件当中
[plugins."io.containerd.grpc.v1.cri".registry.config."docker.io"]
endpoint = ["https://registry.cn-hangzhou.aliyuncs.com" ,"https://registry-1.docker.io"]
- 启动Containerd,并设置为开机自启
- 查看Containerd安装的版本信息
- 拉取镜像
- 查看拉取镜像的结果
- 检查镜像
- 更改镜像名称
- 删除镜像
- 挂载镜像(方便查看镜像里边的内容)
- 取消挂载(此操作只会取消挂载镜像,挂载点还是存在的,无法取消,若要执意取消,可重启系统)
(取消挂载的第二种方法)
fuser -uvm /挂载目录(可以显示出进程号)
使用kill -9 +进程号杀死进程
在根目录下使用ctr images unmount /挂载目录
- 导出镜像
- 导入镜像
- 创建容器(注意创建时的顺序,先指定要用到的镜像,在命名要创建的容器名称)
- 查看镜像的详细信息
- 启动容器、并查看任务
- 登录容器当中
-
- exec:登录
- --exec-id:登录时指定id
- -t:后面跟要登录的容器名称及解释器
- 暂停(挂起)任务
- 恢复被暂停(挂起)的任务
- 删除容器(先杀死容器任务,才能删除;删除之后容器还残留的有快照,可以利用快照的方式重新启动任务)
- 根据残留的快照,重新启动任务
- 查看容器对资源消耗的情况
- 查看Containerd的插件
- 查看现有的命名空间
- 创建命名空间
- 拉取镜像到指定的命名空间里
- 删除命名空间
- 将镜像拉取到指定的命名空间中并重命名
- 查看已创建的命名空间中的镜像