docker使用docker命令管理容器和镜像;
containerd使用ctr命令管理容器和镜像,CLI命令行工具;
k8s中使用crictl命令管理容器和镜像;
ctr是containerd自带的CLI命令行工具,crictl是k8s中CRI(容器运行时接口)的客户端,k8s使用该客户端和containerd进行交互。
-查看containerd客户端即服务器版本信息
ctr version
#containerd常用命令
-由于containerd有命名空间的概念,这一点与docker不同
ctr namespace ls
ctr namespace create helm
ctr namespace remove helm
ctr namespace label helm k8s=true #ctr namespaces label <name> [<key>=<value>, ...]
ctr namespace label helm k8s= #k8s=空值,表示删除该key
1.镜像管理命令
-列出镜像(不指定命名空间默认就是default)
ctr images ls
-下载镜像
ctr images pull docker.io/library/nginx:1.18 #默认下载到default命名空间
ctr -n helm images pull docker.io/library/nginx:1.18 #默认下载到default命名空间
ctr images pull --platform linux/amd64 docker.io/library/nginx:1.18 #下载指定平台,我们一般不会指定平台,让其默认平台即可
-挂载镜像
-containerd可以将一个镜像挂载到某个挂载点,用于方便查看该镜像有什么内容
ctr images mount docker.io/library/nginx:1.18 /mnt/
-卸载镜像
ctr images unmount /mnt/
umount /mnt
-导出镜像
ctr images export nginx:1.18.tar.gz docker.io/library/nginx:1.18
ctr images export --platform linux/amd64 nginx:1.18.tar.gz docker.io/library/nginx:1.18
ctr images export --all-platforms nginx:1.18.tar.gz docker.io/library/nginx:1.18
-导入镜像
ctr images import nginx:1.18.tar.gz
ctr -n helm images import nginx:1.18.tar.gz
-删除镜像
ctr images delete docker.io/library/nginx:1.18
ctr images del docker.io/library/nginx:1.18
ctr images remove docker.io/library/nginx:1.18
ctr images rm docker.io/library/nginx:1.18
-修改镜像tag
ctr images tag docker.io/library/nginx:1.18 192.168.110.110/nginx/nginx:1.18
-检查镜像
-检查镜像确保所有内容在本地可用
ctr images check
2.容器管理命令
-创建容器
ctr containers create docker.io/library/nginx:1.18 my-nginx
-列出容器
ctr containers ls
-获取容器信息
ctr containers info nginx
-删除容器
ctr containers delete nginx
ctr containers del nginx
ctr containers remove nginx
ctr containers rm nginx
3.管理任务
-使用帮助
ctr tasks --help
-启动已经创建的容器
-启动刚才创建好的nginx
ctr tasks start -d nginx
-查看任务
ctr tasks ls #查看任务
ctr tasks ls -q #查看任务,仅打印任务ID
-查看/列出容器进程
ctr tasks ps nginx
-暂停容器运行
ctr tasks pause nginx
-恢复暂停的容器
ctr tasks resume nginx
-发送信号给容器,命令其实就是停止容器
ctr tasks kill nginx
-进入容器
ctr tasks exec -t --exec-id $RANDOM nginx sh
4.直接运行容器
ctr run -d docker.io/library/nginx:1.18 nginx