containerd 入门

文章目录


前言

官网:https://containerd.io/

GitHub:https://github.com/containerd/containerd

containerd 相关介绍文章

环境说明

操作系统版本:CentOS Linux release 7.9.2009 (Core)

操作系统安装包:CentOS-7-x86_64-Minimal-2009.iso

Docker 版本:Docker Engine - Community 24.0.7

containerd 版本:1.6.24

安装部署(通过 yum)

官方文档:https://github.com/containerd/containerd/blob/main/docs/getting-started.md

shell 复制代码
# 官方推荐:参考Docker 官方文档 https://docs.docker.com/engine/install/centos/
# 配置 repository
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装部署
yum install -y docker-ce containerd.io
# 启动服务
systemctl start docker
# 验证
docker version
ctr version

测试

shell 复制代码
# 拉取镜像
ctr i pull docker.io/library/nginx:1.24
# 查看镜像列表
ctr i ls

# 启动服务
ctr run --net-host -d docker.io/library/nginx:1.24 test
# 查看容器
ctr c ls
# 查看任务
ctr t ls
# 查看 80 端口监听情况
ss -ntl|grep 80

# 开放 80 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重启防火墙
systemctl restart firewalld.service

验证服务是否正常启动

方法:通过浏览器访问 http:ip (默认 80 端口) 显示 Nginx 页面 Welcome to nginx!

常用相关命令

参考文档

shell 复制代码
# 帮助
ctr -h

# 镜像
# 帮助
ctr i -h
# 拉取镜像
ctr i pull docker.io/library/busybox:1.36.1
# 查看镜像
ctr i ls
# 删除镜像
ctr i rm docker.io/library/busybox:1.36.1

# 容器
# 帮助
ctr c -h
# 创建容器
ctr c create docker.io/library/nginx:1.24 test
# 查看容器
ctr c ls
# 查看容器配置
ctr c info test
# 删除容器
ctr c rm test

# 任务
ctr t -h
# 启动任务
ctr t start -d test
# 查看任务
ctr t ls
# 进入容器(注意:必须要指定 --exec-id 参数,参数唯一)
ctr t exec --exec-id 0 -t test sh
# 暂停任务(说明:暂停后容器状态变成了 PAUSED )
ctr t pause test
# 恢复任务
ctr t resume test
# 杀死任务
ctr t kill test
# 删除任务(和 docker 相同,参数 -f 可强制删除)
ctr t rm test

# 命名空间
# 查看明明空间列表
ctr ns ls

K8s 中 containerd 常用命令

powershell 复制代码
# 查看镜像列表
ctr -n k8s.io images list
# 拉取镜像
ctr -n k8s.io images pull docker.io/library/busybox:1.36.1
# 推送镜像
ctr -n k8s.io images push -plain-http docker.io/library/busybox:1.36.1

# 批量删除
ctr -n k8s.io images delete $(ctr -n k8s.io images list -q | grep library)
# 删除 library 相关镜像
ctr -n k8s.io i ls | grep library| awk '{print $1}' | xargs -i ctr -n k8s.io i remove {}

总结

大部分命令和 Docker 能对应上,如果知道如何使用 Docker ,那么 containerd 比较容易上手!

不过 containerd 多了一个命名空间(namespace)的概念而已,拿来区分 containerd 的默认命名空间 default 、Docker 的默认命名空间 moby 、 K8s 的默认命名空间 k8s.io 及其他命名空间!

相关推荐
福大大架构师每日一题5 天前
containerd v2.1.0全面升级解析!性能大幅提升,功能再度革新,容器世界迎来新变革!
containerd
abin在路上21 天前
Golang 版本导致的容器运行时问题
云原生·golang·containerd
塔克拉玛攻城狮21 天前
一文详解银河麒麟配置容器运行时及gVisor(runsc)、Kata(runv)详细指南
docker·kubernetes·containerd·银河麒麟
老糊涂Lion4 个月前
向harbor中上传镜像(向harbor上传image)
linux·docker·containerd·harbor
听说唐僧不吃肉5 个月前
一文了解containerd与docker的区别
docker·containerd
树下一少年6 个月前
k8s运行运行pod报错超出文件描述符表限制
linux·容器·kubernetes·containerd·limit.conf
SilentCodeY6 个月前
containerd配置私有仓库registry
容器·kubernetes·containerd·镜像·crictl
知本知至6 个月前
arm架构部署nexus配置ssl&containerd
arm开发·架构·containerd·nexus
胡八一7 个月前
安装buildkit,并使用buildkit构建containerd镜像
kubernetes·containerd
Ops菜鸟(Xu JieHao)7 个月前
Linux 安装部署及使用Containerd容器管理工具 ~ 保姆级
linux·运维·nginx·docker·容器·containerd