################crictl ####################
crictl 安装k8s即有,ctr是containerd的一个客户端工具 ,ctr -v输出的是containerd的版本
[root@m1 ~]# crictl -v
crictl version v1.30.1
[root@m1 ~]#
[root@m1 ~]# crictl images
IMAGE TAG IMAGE ID SIZE
docker.io/calico/cni v3.25.0 d70a5947d57e5 198MB
docker.io/calico/kube-controllers v3.25.0 5e785d005ccc1 71.7MB
docker.io/calico/node v3.25.0 08616d26b8e74 247MB
registry.aliyuncs.com/google_containers/coredns v1.11.1 cbb01a7bd410d 18.2MB
registry.aliyuncs.com/google_containers/etcd 3.5.12-0 3861cfcd7c04c 57.2MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.30.4 8a97b1fb3e2eb 32.8MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.30.4 8398ad49a121d 31.1MB
registry.aliyuncs.com/google_containers/kube-proxy v1.30.4 568d5ba88d944 29MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.30.4 4939f82ab9ab4 19.3MB
registry.aliyuncs.com/google_containers/pause 3.6 6270bb605e12e 302kB
registry.aliyuncs.com/google_containers/pause 3.9 e6f1816883972 322kB
[root@m1 ~]#
ctr--help
crictl--help
##############ctr########################
如果你的ctr images pull总是报错: http: server gave HTTP response to HTTPS client。可能这并不是你的配置出错,而是你需要在后面pull操作后加上--plain-http参数。表示你当前client与镜像仓库之间接受http形式的通信。或者是使用自定义的hosts-dir来指定配置文件。
ctr images pull IP:PORT/library/service:v1.0.0 --plain-http
ctr images pull IP:PORT/library/service:v1.0.0 --hosts-dir "/etc/containerd/certs.d"
由于 Containerd 也有 namespaces 的概念,对于上层编排系统的支持,
ctr客户端 主要区分了 3 个命名空间分别是k8s.io、moby和default,
以上我们用crictl操作的均在k8s.io命名空间,使用ctr看镜像列表就需要加上-n 参数。
crictl 是只有一个k8s.io命名空间,但是没有-n 参数。
【温馨提示】ctr images pull 拉取的镜像默认放在default,
而 crictl pull 和 kubelet 默认拉取的镜像都在 k8s.io 命名空间下。
所以通过ctr导入镜像的时候特别注意一点,最好指定命名空间。
######################nerdctl#########################
containerd 客户端工具 nerdctl:
nerdctl 是 与 Docker 兼容的CLI for Containerd,其支持Compose
nerdctl 和 docker命令行语法很相似,学习比较容易
nerdctl 官方发布包包含两个安装版本:
Minimal: 仅包含 nerdctl 二进制文件以及 rootless 模式下的辅助安装脚本
Full: 看名字就能知道是个全量包,其包含了 Containerd、CNI、runc、BuildKit 等完整组件
推荐使用 nerdctl,使用效果与 docker 命令的语法一致,github 下载链接:
https://github.com/containerd/nerdctl/releases
精简 (nerdctl--linux-amd64.tar.gz): 只包含 nerdctl
完整 (nerdctl-full--linux-amd64.tar.gz):包含 containerd, runc, and CNI 等依赖
nerdctl的目标并不是单纯地复制 docker 的功能,它还实现了很多 docker 不具备的功能,例如延迟拉取镜像(lazy-pulling)、镜像加密(imgcrypt)等。具体看 nerdctl。
nerdctl使用样例
# nerdctl run -d --name nginx -p 80:80 nginx:alpine
To run a container with the default bridge CNI network (10.4.0.0/24):
# nerdctl run -it --rm alpine
To build an image using BuildKit:
# nerdctl build -t foo /some-dockerfile-directory
# nerdctl run -it --rm foo
To build and send output to a local directory using BuildKit:
# nerdctl build -o type=local,dest=. /some-dockerfile-directory
To run containers from docker-compose.yaml
# nerdctl compose -f ./examples/compose-wordpress/docker-compose.yaml up
nerdctl添加组件-完整安装full包包含这个脚本
# containerd-rootless-setuptool.sh install-buildkit
nerdctl run -d --name nginx -p 80:80 nginx:alpine
nerdctl run -d -p 80:80 --name=nginx --restart=always nginx:alpine
systemctl start containerd
标签:aliyuncs,ctr,--,Containerd,nerdctl,命令行,com,containers From: https://www.cnblogs.com/kissit/p/18366388