containerd提供了ctr命令行用于镜像管理容器,但功能比较简单
所以一般会用k8s提供的crictl命令。
该命令的特点是:只要符合K8S的CRI接口的,都可以使用。
另外一点就是,cricrl的命令和docker的命令大部分都很像,学习成本不会很高。
项目地址:https://github.com/kubernetes-sigs/cri-tools/
默认情况下crictl会自动检查当前容器引擎,如果你没设置指定容器引用的RPC就会有一个提示,如下:
[root@k8s-master ~]# crictl images
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.
如果你不想每次都有上述提示,你可以设置crictl连接指定的容器引擎,如:containerd,修改/etc/crictl.yaml配置文件即可
vim /etc/crictl.yaml
# 添加以下内容:
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
| 镜像相关功能 | Docker | crictl |
| 显示本地镜像列表 | docker images | crictl images |
| 下载镜像 | docker pull | crictl pull |
| 上传镜像 | docker push | 无,例如buildk |
| 删除本地镜像 | docker rmi | crictl rmi |
| 查看镜像详情 | docker inspect |
crictl inspecti |
| 容器相关功能 | Docker | crictl |
| 显示容器列表 | docker ps | crictl ps |
| 创建容器 | docker create | crictl create |
| 启动容器 | docker start | crictl start |
| 停止容器 | docker stop | crictl stop |
| 删除容器 | docker rm | crictl rm |
| 查看容器详情 | docker inspect | crictl inspect |
| 附加容器 | docker attach | crictl attach |
| 执行命令 | docker exec | crictl exec |
| 查看日志 | docker logs | crictl logs |
| 查看容器资源 | docker stats | crictl stats |
| POD 相关功能 | Docker | Containerd |
| 显示 POD 列表 | 无 | crictl pods |
| 查看 POD 详情 | 无 | crictl inspectp |
| 运行 POD | 无 | crictl runp |
| 停止 POD | 无 | crictl stopp |