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