k8s中 docker和containerd 镜像相互导入导出

  • containerd镜像导出并导入docker

1 查看containerd 本地镜像列表
 

crictl images 

2 containerd 导出本地镜像到当前目录下(注意: 导出导入需要指定镜像平台类型 --platform

ctr -n k8s.io images export nacos-server-24-06-30-13-02-02.tar  docker.io/nacos/nacos-server:v2.1.2  --platform linux/amd64

3 将当前目录下tar 复制到远程docker主机下

scp nacos-server-24-06-30-13-02-02.tar root@101.133.22.13:~ 

4 docker 加载tar镜像包

docker load -i nacos-server-24-06-30-13-02-02.tar 

  • docker 镜像导出并导入containerd

1 docker保存镜像为tar文件

docker save alpine:3.15 > alpine-3.15.tar

2 上传镜像到需要的节点, (这里直接本机操作,跳过)

scp alpine-3.15.tar root@192.168.232.6:~

 3 将tar导入到containerd镜像中(注意: 导出导入需要指定镜像平台类型 --platform,不然会出问题。

ctr -n k8s.io images import alpine-3.15.tar --platform linux/amd64

4 检查containerd 本地镜像

[root@master ~]# crictl images
IMAGE                                                             TAG                 IMAGE ID            SIZE
...
docker.io/library/alpine                                          3.15                c059bfaa849c4       5.87MB
...

### 将 Docker 下载的镜像导入到 K3s 的 Containerd 中 #### 背景说明 Docker containerd 是两种独立的容器运行时工具,尽管它们的功能相似,但在具体实现上有显著差异。当使用 k3s 并基于 containerd 运行时的情况下,如果已经通过 Docker 获取了一些镜像资源,则需要一种方法将这些镜像迁移到 containerd 环境下[^1]。 --- #### 步骤解析 ##### 1. 导出 Docker 镜像为 tar 文件 首先,在现有 Docker 环境中导出目标镜像至本地磁盘: ```bash docker save -o nginx-image.tar nginx:latest ``` 此命令会创建名为 `nginx-image.tar` 的文件,其中包含了指定版本 (`latest`) 的 Nginx 镜像数据。 --- ##### 2. 加载镜像containerd 由于 containerd 不直接支持加载压缩格式 (`.tar.gz`) 的镜像文件[^3],因此需先解压再导入。假设原始文件名是 `nginx-image.tar`: ```bash mkdir /tmp/nginx && tar xf nginx-image.tar -C /tmp/nginx/ ctr -n=k8s.io images import /tmp/nginx/* ``` 这里的关键在于 `-n=k8s.io` 参数的选择,它明确了所操作的目标命名空间应当匹配 k3s 所采用的标准命名空间名称即 `k8s.io`[^2]。 --- ##### 3. 验证镜像成功迁移 最后一步就是验证新加入的镜像是否已被正确识别: ```bash ctr -n=k8s.io images list | grep nginx ``` 假如输出显示有对应的记录条目存在则表明整个过程顺利完成。 --- ### 注意事项 - **环境准备**: 在执行上述任何步骤之前,请确保已安装好最新版的 containerd 及其关联组件如 `crictl`, 否则可能遭遇诸如 “command not found” 类型错误提示[^2]. - **权限控制**: 整个过程中涉及到多个系统级目录的操作, 因而往往需要用到超级管理员身份(`sudo`). - **网络连通性**: 如果某些阶段依赖外部互联网连接(比如初次安裝containerd), 则请预先确认所在主机具备稳定可靠的联网条件. --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值