--- title: Docker和Containerd命令区别 categories: - 小技巧 tags: - k8s date: 2023-03-27 13:24:33 --- # Dcoker和Containerd命令区别 | 命令 | docker | ctr(containerd) | crictl(kubernetes) | | :----------------------: | :----------------: | :--------------------------: | :------------------: | | 查看运行的容器 | docker ps | ctr task ls/ctr container ls | crictl ps | | 查看镜像 | docker images | ctr image ls | crictl images | | 查看容器日志 | docker logs | 无 | crictl logs | | 查看容器数据信息 | docker inspect | ctr container info | crictl inspect | | 查看容器资源 | docker stats | 无 | crictl stats | | 启动/关闭已有的容器 | docker start/stop | ctr task start/kill | crictl start/stop | | 运行一个新的容器 | docker run | ctr run | 无(最小单元为 pod) | | 打标签 | docker tag | ctr image tag | 无 | | 创建一个新的容器 | docker create | ctr container create | crictl create | | 导入镜像 | docker load | ctr image import | 无 | | 导出镜像 | docker save | ctr image export | 无 | | 删除容器 | docker rm | ctr container rm | crictl rm | | 删除镜像 | docker rmi | ctr image rm | crictl rmi | | 拉取镜像 | docker pull | ctr image pull | ctictl pull | | 推送镜像 | docker push | ctr image push | 无 | | 登录或在容器内部执行命令 | docker exec | 无 | crictl exec | | 清空不用的容器 | docker image prune | 无 | crictl rmi --prune | `crictl` 和 `ctr` 都是 Kubernetes 中用于管理容器运行时的命令行工具。 `crictl` 是一个 CLI 工具,用于与 CRI(容器运行时接口)兼容的容器运行时进行通信。它可以用来列出容器镜像、创建和删除容器等操作。 `ctr` 是 Docker 提供的一个 CLI 工具,用于与容器和镜像进行交互。它也可以用来在 Kubernetes 中管理容器,包括在 Kubernetes 中创建、删除和更新容器。 因此,`crictl` 和 `ctr` 的主要区别在于它们与不同的容器运行时进行通信,以及它们提供的功能集。如果您使用 CRI 兼容的容器运行时,建议使用 `crictl` 进行操作。如果您使用 Docker(containerd) 作为容器运行时,建议使用 `ctr` 进行操作。