containerd 介绍

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

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

介绍

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

安装

加速

containerd 客户端

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

logo

图片来自

命令dockerctr(containerd)crictl(kubernetes)
查看运行的容器docker psctr task ls/ctr container lscrictl ps
查看镜像docker imagesctr image lscrictl images
查看容器日志docker logscrictl logs
查看容器数据信息docker inspectctr container infocrictl inspect
查看容器资源docker statscrictl stats
启动/关闭已有的容器docker start/stopctr task start/killcrictl start/stop
运行一个新的容器docker runctr run无(最小单元为 pod)
打标签docker tagctr image tag
创建一个新的容器docker createctr container createcrictl create
导入镜像docker loadctr image import
导出镜像docker savectr image export
删除容器docker rmctr container rmcrictl rm
删除镜像docker rmictr image rmcrictl rmi
拉取镜像docker pullctr image pullctictl pull
推送镜像docker pushctr image push
登录或在容器内部执行命令docker execcrictl exec
清空不用的容器docker image prunecrictl 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
本文总阅读量 次 本站总访问量 次 本站总访客数