containerd 入门

文章目录

  • 前言
  • 环境说明
  • 安装部署(通过 yum)
  • 常用相关命令
  • 总结


前言

官网: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

# 官方推荐:参考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

测试

# 拉取镜像
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!

常用相关命令

参考文档

# 帮助
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 常用命令

# 查看镜像列表
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 及其他命名空间!

你可能感兴趣的:(DevOps,containerd,containerd,部署,yum部署containerd,containerd,常用命令,containerd,安装部署,containerd,安装,部署,containerd)