containerd 介绍

发布时间: 更新时间: 总字数:737 阅读时间:2m 作者: IP上海 分享 网址

containerd 是一个高级容器运行时,通过守护进程来管理容器的完整生命周期:创建、启动、停止容器、拉取和存储镜像、配置挂载、网络等。

介绍

  • docker 在底层使用 containerd 来运行容器
  • containerd 是从 docker 中拆分出来的。containerd 提供的功能包括:
    • 镜像下载
    • 镜像管理
    • 创建管理容器(调用 Low-Levelrunc 来完成),当从镜像创建容器时,首先将镜像解开成 OCI runtime bundle,然后调用 runc 来运行容器

安装

加速

containerd 客户端

containerd 的客户端有:ctr、crictl、nerdctl

logo

图片来自

命令 docker ctr(containerd) crictl(kubernetes)
查看运行的容器 docker ps ctr task ls/ctr container ls crictl ps
查看镜像 docker images ctr image ls crictl images
查看容器日志 docker logs crictl logs
查看容器数据信息 docker inspect ctr container info crictl inspect
查看容器资源 docker stats crictl stats
启动/关闭已有的容器 docker start/stop ctr task start/kill crictl start/stop
运行一个新的容器 docker run ctr run 无(最小单元为 pod)
打标签 docker tag ctr image tag
创建一个新的容器 docker create ctr container create crictl create
导入镜像 docker load ctr image import
导出镜像 docker save ctr image export
删除容器 docker rm ctr container rm crictl rm
删除镜像 docker rmi ctr image rm crictl rmi
拉取镜像 docker pull ctr image pull ctictl pull
推送镜像 docker push ctr image push
登录或在容器内部执行命令 docker exec crictl exec
清空不用的容器 docker image prune crictl rmi –prune

ctr

  • ctr 是 containerd 项目的一部分,提供的命令行客户端
  • ctr + containerd 对标 docker + dockerd
# 拉取镜像
ctr images pull docker.io/library/nginx:1.21
ctr images pull quay.io/quay/redis:latest

# 列出本地镜像
ctr images ls

# containerd 不提供开箱即用的镜像构建支持,可以导入其他镜像
docker save -o nginx.tar nginx:1.21
ctr images import nginx.tar

# 挂载镜像文件到文件系统
mkdir nginx
ctr images mount docker.io/nginx:1.21 /tmp/nginx

# 取消挂载
ctr images unmount /tmp/ngin

# 删除镜像
ctr images remove docker.io/library/nginx:1.21

# 运行
# ctr run 实际上 ctr container create + ctr task start
ctr run --rm -t docker.io/library/nginx:1.21 bash

# 查看运行中的镜像
ctr containers ls

# 查看 task
ctr task ls
ctr task start -d nginx_1

# 重新连接到在容器内运行的任务
ctr task attach nginx_1

# create task
ctr task exec-t -- exec-id bash_1 nginx_1 bash

# 停止task
ctr task kill -9 nginx_1
ctr task rm -f nginx_1

# 删除容器
ctr container rm nginx_1

nerdctl

  • nerdctl 是一个相对较新的 containerd 命令行客户端,目标是促进试验 Docker 中不存在的 containerd 的尖端功能
  • nerdctl 尝试提供与 docker 相同用户体验的命令行工具

crictl

crictl 是 Kubernetes CRI 兼容容器运行时的命令行客户端

Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数