1. 一、Docker or Containerd如何选择<br />在这里插入图片描述<br />二、Containerd安装<br />1、官网地址

    https://containerd.io/

    1
    

    在这里插入图片描述

    在这里插入图片描述
    2、下载

    containerd_1.4.3版本:

    网盘地址:
    链接:https://pan.baidu.com/s/1VttkidfM075V3slavDnocA?pwd=b2ms
    提取码:b2ms

    github地址:

    https://github.com/containerd/containerd/releases/tag/v1.4.3

    1
    

    在这里插入图片描述
    3、解压

    tar -zxvf cri-containerd-cni-1.4.3-linux-amd64.tar.gz

    1
    

    在这里插入图片描述
    4、删除一些不需要的文件

    cd /data/soft/containerd
    rm -rf opt
    rm -rf ./etc/cni
    find . -type f

    1<br />    2<br />    3<br />    4
    

    在这里插入图片描述
    5、拷贝文件到根目录

    cp -r etc/ /
    cp -r usr/ /

    1<br />    2
    

    在这里插入图片描述
    6、创建目录生成配置文件

    mkdir /etc/containerd
    containerd config default > /etc/containerd/config

    1<br />    2
    

    在这里插入图片描述
    7、修改配置文件

    vi /etc/containerd/config.toml

    1
    

    在这里插入图片描述
    8、进行重启

    systemctl enable containerd
    systemctl restart containerd

    1<br />    2
    

    在这里插入图片描述
    9、查看containerd的状态

    systemctl statuscontainerd

    在这里插入图片描述
    三、containerd的实践操作
    1、ctr -h

    查看帮助
    在这里插入图片描述
    2、ctr i -h

    镜像相关操作
    在这里插入图片描述
    (1)查询镜像

    ctr i ls

    1
    

    在这里插入图片描述
    (2)拉取镜像

    这样是错误的,不会像docker那样自动添加 docker.io/library/redis:alpine

    ctr i pull redis:alpine

    1
    

    在这里插入图片描述

    需要加上 docker.io/library/

    ctr i pull docker.io/library/redis:alpine

    1
    

    在这里插入图片描述
    再查询一下镜像,就有了

    ctr i ls

    1
    

    在这里插入图片描述
    (3)命名空间
    1)查看命名空间帮助命令

    ctr ns -h

    1
    

    在这里插入图片描述
    2)查看命名空间

    ctr ns ls

    1
    

    在这里插入图片描述
    (4)docker和containerd的命名空间

    这里有一个疑问,如果有docker的话,doker下载的镜像在命名空间这里能看到吗?下面我们安装一个docker进行验证一下。
    1)安装docker

    centos安装dokcer

    yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

    yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2

    yum-config-manager \
    —add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

    yum install -y docker-ce

    systemctl start docker.service

    docker version

    2)查看一下命名空间

    还是只有一个default

    ctr ns ls

    1
    

    在这里插入图片描述
    3)docker下载一个镜像

    使用docker下载一个redis

    docker pull redis:alpine

    1
    

    在这里插入图片描述
    4)再次查看命名空间

    此时再查看一下命名空间
    发现多了一个moby,这是因为docker改革了

    ctr ns ls

    1
    

    在这里插入图片描述
    5)默认命名空间下的镜像

    我们看一下默认的default命名空间下有哪些镜像,还是之前下载的那一个。

    ctr -n default i ls

    1
    

    在这里插入图片描述
    5)moby命名空间下的镜像

    再看下moby的命名空间,里面什么也没有。

    ctr -n moby i ls

    1
    

    在这里插入图片描述
    6)moby命名空间下为空的原因

    这是因为镜像的存储目录不一样:

    containerd的镜像存储在

    /var/lib/containerd

    1
    

    在这里插入图片描述

    docker的镜像存储在

    /var/lib/docker

    1
    

    在这里插入图片描述
    (5)containerd如何使用docker的镜像
    1)查看doker的镜像

    docker images

    1
    

    在这里插入图片描述
    2)打个标签

    在这里插入图片描述
    3)push上去

    在这里插入图片描述
    4)使用ctr拉取下来

    在这里插入图片描述
    (6)容器管理
    1)启动容器

    ctr run -t -d docker.io/library/redis:alpine redis

    1
    

    在这里插入图片描述
    2)查看启动的容器

    ctr c ls

    1
    

    在这里插入图片描述
    3)删除容器

    ctr c rm redis
    ctr c ls

    1<br />    2
    

    在这里插入图片描述
    (7)containerd的任务的概念
    1)查看任务

    ctr t ls

    1
    

    在这里插入图片描述
    2)杀掉任务

    ctr t kill redis
    ctr t ls

    1<br />    2
    

    在这里插入图片描述
    3)删除任务

    ctr t rm redis
    ctr t ls

    1<br />    2
    

    在这里插入图片描述
    (8)docker容器启动和containerd有什么关系吗?
    1)后台启动一个docker容器

    docker run -idt redis:alpine

    1
    

    在这里插入图片描述
    2)查询下moby命名空间下的任务

    ctr -n moby t ls

    1
    

    我们发现可以对应起来
    在这里插入图片描述
    所以这里得出一个结论,在容器运行时,他们的命名空间不一样!!!containerd是用的default、docker用的是moby。

    后面如果用到k8s,会生成一个k8s.io的命名空间且只用这个命名空间!!
    (9)crictl命令

    这是k8s提供的命令,方便我们更好的从docker转换过来,命令很相似。
    1)查看镜像

    crictl images

    1
    

    在这里插入图片描述
    2)查看容器

    crictl ps

    1
    

    在这里插入图片描述
    3)查看pods

    crictl pods

    1
    

    在这里插入图片描述
    4)帮助

    crictl -h

    1
    

    在这里插入图片描述
    5)可以设置别名【不推荐】

    在这里插入图片描述
    四】总结

    在这里插入图片描述
    ————————————————
    版权声明:本文为CSDN博主「做一个有趣的人Zz」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_40612128/article/details/123579086