Kubernetes02:容器运行时:Docker or Containerd如何选择、Containerd全面上手实践

一、Docker or Containerd如何选择

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、Containerd安装

1、官网地址

https://containerd.io/

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

3、解压

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

在这里插入图片描述

4、删除一些不需要的文件

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

在这里插入图片描述

5、拷贝文件到根目录

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

在这里插入图片描述

6、创建目录生成配置文件

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

在这里插入图片描述

7、修改配置文件

vi /etc/containerd/config.toml

在这里插入图片描述

8、进行重启

systemctl enable containerd
systemctl restart containerd

在这里插入图片描述

9、查看containerd的状态

systemctl statuscontainerd

在这里插入图片描述

三、containerd的实践操作

1、ctr -h

查看帮助
在这里插入图片描述

2、ctr i -h

镜像相关操作
在这里插入图片描述

(1)查询镜像

ctr i ls

在这里插入图片描述

(2)拉取镜像

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

ctr i pull redis:alpine

在这里插入图片描述

需要加上 docker.io/library/

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

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

ctr i ls

在这里插入图片描述

(3)命名空间

1)查看命名空间帮助命令

ctr ns -h

在这里插入图片描述

2)查看命名空间

ctr ns ls

在这里插入图片描述

(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

在这里插入图片描述

3)docker下载一个镜像

使用docker下载一个redis

docker pull redis:alpine

在这里插入图片描述

4)再次查看命名空间

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

ctr ns ls

在这里插入图片描述

5)默认命名空间下的镜像

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

ctr -n default i ls

在这里插入图片描述

5)moby命名空间下的镜像

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

ctr -n moby i ls

在这里插入图片描述

6)moby命名空间下为空的原因

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

containerd的镜像存储在

/var/lib/containerd

在这里插入图片描述

docker的镜像存储在

/var/lib/docker

在这里插入图片描述

(5)containerd如何使用docker的镜像

1)查看doker的镜像

docker images

在这里插入图片描述

2)打个标签

在这里插入图片描述

3)push上去

在这里插入图片描述

4)使用ctr拉取下来

在这里插入图片描述

(6)容器管理

1)启动容器

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

在这里插入图片描述

2)查看启动的容器

ctr c ls

在这里插入图片描述

3)删除容器

ctr c rm redis
ctr c ls

在这里插入图片描述

(7)containerd的任务的概念

1)查看任务

ctr t ls

在这里插入图片描述

2)杀掉任务

ctr t kill redis
ctr t ls

在这里插入图片描述

3)删除任务

ctr t rm redis
ctr t ls

在这里插入图片描述

(8)docker容器启动和containerd有什么关系吗?

1)后台启动一个docker容器

docker run -idt redis:alpine

在这里插入图片描述

2)查询下moby命名空间下的任务

ctr -n moby t ls

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

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

(9)crictl命令

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

1)查看镜像

crictl images

在这里插入图片描述

2)查看容器

crictl ps

在这里插入图片描述

3)查看pods

crictl pods

在这里插入图片描述

4)帮助

crictl -h 

在这里插入图片描述

5)可以设置别名【不推荐】

在这里插入图片描述

四】总结

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40612128/article/details/123579086