docker与containerd镜像获取及导出导入的区别与注意事项(报错信息:ctr: content digest sha256........ac47: not found)

简介: docker与containerd镜像获取及导出导入的区别与注意事项(报错信息:ctr: content digest sha256........ac47: not found)

@[TOC]

前言

解决报错的方法在文章末尾

docker与containerd的关系

Docker:
Docker是一个开源的容器化平台,用于开发、打包和运行应用程序。它提供了一整套工具和平台,使得容器的创建、部署和管理变得简单和高效。Docker引擎(Docker Engine)是Docker平台的核心部分,负责管理容器的生命周期,包括创建、运行、停止和删除容器等操作。在Docker Engine中,包含了很多组件,其中的一个核心组件就是containerd。

containerd:
containerd是一个开源的容器运行时(container runtime),它负责管理容器的生命周期,如启动、停止和删除容器。containerd最初是作为Docker引擎中的一个子项目,后来成为了一个独立的项目,并被广泛地用于各种容器平台和工具中。

关系说明:
Docker Engine包含了多个组件,其中之一就是containerd。

具体来说,Docker Engine使用containerd来执行容器相关的底层操作,如镜像管理、容器生命周期管理等。

Docker Engine提供了更高层次的抽象和功能,例如Docker CLI(命令行工具)和Docker Compose(用于多容器应用的编排工具)。这些工具使得开发者可以方便地进行容器的构建、编排和管理。

containerd则是Docker Engine中负责执行容器运行时职责的底层组件,它和Linux操作系统的内核(如cgroups和namespace)交互,实现了容器的隔离和资源管理。

镜像获取

docker的镜像获取
Docker使用Docker Hub作为默认的镜像仓库,其中包含了大量的公共镜像供开发者使用。
获取Docker镜像通常通过docker pull命令来完成
例如
获取nginx的最新镜像(如果没有标签则默认为latest)

docker pull nginx

containerd的镜像获取
containerd并没有默认的镜像仓库,它更多地关注容器运行时的底层操作。
如果需要获取镜像,一般通过ctr images pull命令来获取
需要注意的是: containerd获取镜像需要写上镜像仓库获取路径。
例如
获取Docker官方仓库中nginx的最新镜像

ctr images pull  docker.io/library/nginx:latest

注; latest不能省略

镜像导出

Docker的镜像导出
Docker的镜像导出一般通过docker save -o 命令来实现
例如
将本地的nginx:latest镜像打包成nginx.tar

docker save -o nginx.tar nginx:latest

containerd的镜像导出
containerd的镜像导出与docker基本一样,通过ctr images export 命令来实现
例如
将docker.io/library/nginx.latest这个镜像打包成nginx.tar

ctr images export nginx.tar docker.io/library/nginx:latest

镜像导入

docker的镜像导入
docker的镜像导入一般通过docker load -i 命令来实现
例如
将刚刚打包好的nginx.tar导入(记得提前删除本地镜像)

docker load -i nginx.tar

containerd的镜像导入
containerd的镜像导入一般通过 ctr images import 命令来实现

跟docker区别在于,containerd的镜像导入需要在后面加上 --platform linux/amd64 用于指定要构建或运行的镜像适用的平台架构,不然就会报错
报错信息如下

ctr: content digest sha256:64211d1abd8afd2ac0f49ce2c13a6f978b2f8d5b22fd9a1aee0bdf5575c2ac47: not found

正确举例
将刚刚打包好的nginx.tar导入(记得提前删除本地镜像)

ctr images import nginx.tar  --platform linux/amd64
相关文章
|
8月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
508 99
|
7月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
784 6
|
8月前
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
340 8
|
8月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
720 115
|
8月前
|
缓存 前端开发 Docker
Docker Layer Caching:加速你的容器构建
Docker Layer Caching:加速你的容器构建
|
7月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
750 51
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !

热门文章

最新文章