containerd ctr crictl
ctr 是 containerd 的一個客戶端工具。
crictl 是 CRI 兼容的容器運行時命令行接口,可以使用它來檢查和調試 k8s 節點上的容器運行時和應用程序。
ctr -v 輸出的是 containerd 的版本,
crictl -v 輸出的是當前 k8s 的版本(這個跟kubelctl version 輸出的結果不一致。不知道為啥),從結果顯而易見你可以認為 crictl 是用于 k8s 的。
K8S發布CRI(Container Runtime Interface),統一了容器運行時接口,凡是支持CRI的容器運行時,皆可作為K8S的底層容器運行時。
containerd學習資料
Containerd 鏡像加速器配置
# 拉取鏡像
ctr images pull docker.io/library/nginx:latest
crictl ctr
ctr
# 查看運行的容器
ctr task ls# 查看鏡像
ctr image ls```csharp
# 拉取nginx
ctr images pull docker.io/library/nginx:latest
# 拉取nginx
ctr images pull docker.1ms.run/library/nginx:latest
ctr images pull docker.xuanyuan.me/library/nginx:latest
crictl
# 查看運行的容器
crictl ps# 查看鏡像
crictl images# 拉取鏡像
crictl pull nginx:alpine
crictl pull nginx:latest
# crictl img ls 報錯如下
WARN[0000] image connect using default endpoints: [unix:///var/run/dockershim.sock unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead.
E0328 16:28:44.813950 157697 remote_image.go:119] "ListImages with filter from image service failed" err="rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory\"" filter="&ImageFilter{Image:&ImageSpec{Image:ls,Annotations:map[string]string{},},}"
FATA[0000] listing images: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory" # 解決方案
>crictl config runtime-endpoint unix:///run/containerd/containerd.sock
>crictl config image-endpoint unix:///run/containerd/containerd.sock