Docker镜像(本地tar文件)创建Singularity镜像(SIF文件)报错:FATAL: While performing build: conveyor failed to get: l

Docker镜像(本地tar文件)创建Singularity镜像(SIF文件)报错:FATAL: While performing build: conveyor failed to get: loading tar component manifest.json: archive/tar: invalid tar header解决办法

“这个问题可能是由于Windows和Unix之间的stdout行为的不同而发生的。”

所以在windows版本的docker上用:
查看镜像

docker images #查看镜像
hello-world                    latest    feb5d9fea6a5   22 months ago   13.3kB

镜像保存到本地(注意!!!一定要用 -o 的方式保存)

docker save feb5d9fea6a5 -o hello_world.tar

#这种方法保存的镜像就是singularity中报错的根本原因👇

docker save feb5d9fea6a5 > hello_world.tar

上传至linux后

singularity build hello_world.sif docker-archive://hello_world.tar

运行成功日志↓

[g@node singular_projects]$ singularity build  hello_world_ceshi_1.sif docker-archive://hello-world_ceshi.tar
INFO:    Starting build...
2023/08/13 10:00:24  info unpack layer: sha256:b02aa9dda6345c4b85ec4d621fbc4a4177aed6b047a82f3c0d7d2085a78c88f0
INFO:    Creating SIF file...
INFO:    Build complete: helll_world_ceshi_1.sif

可行,解决
最后,小tips:
1.如果docke镜像文件太大,保存到本地可直接保存为压缩文件格式,即

docker save feb5d9fea6a5 -o hello_world.tar.gz

上传到Linux,转化成singularity镜像也是同样的操作,不增加任何的参数,即

singularity build hello_world.sif docker-archive://hello_world.tar.gz

2.如果可以,朋友们,还是尽量尝试从docker中直接转化成singulariy镜像,减少下载下来又上传上去的麻烦步骤(毕竟如果文件大,又网速一般,那……)如何操作看参考1博客内容的方式1

参考:

  1. 从Docker镜像创建Singularity镜像(SIF文件)
  2. https://stackoom.com/question/2kRgA
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值