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 及其他命名空间!

相关推荐
行者Sun198913 天前
【K8s】专题十三:Kubernetes 容器运行时之 Docker 与 Containerd 详解
docker·云原生·容器·kubernetes·containerd
塔克拉玛攻城狮20 天前
containerd:配置https私有镜像仓库的最新方法
containerd·harbor
forestsea2 个月前
Docker、containerd、CRI-O 和 runc 之间的区别
docker·containerd·runc·crio·docker被k8s淘汰
张兆坤的那些事3 个月前
kubernetes使用私有仓库harbor创建Pod
kubernetes·containerd·harbor
KXY冲冲冲4 个月前
Containerd方式部署K8s集群
云原生·容器·kubernetes·containerd
洒满阳光的午后5 个月前
使用containerd容器运行时的Kubernetes集群如何配置访问http私有仓库(insecure-registries)?
docker·容器·kubernetes·containerd
昕光xg6 个月前
k8s笔记28--快速在ubuntu上基于二进制和源码安装containerd
containerd·cni·nerdctl·runc·容器运行时
树下一少年6 个月前
构建Helm chart和chart使用管道与函数简介
kubernetes·helm·containerd·chart·toyaml
niufw_qb7 个月前
containerd中文翻译系列(二十一)用户命名空间
云原生·k8s·containerd
niufw_qb7 个月前
containerd中文翻译系列(二十二)运行时v2
云原生·k8s·containerd