将本地docker镜像转换为singularity镜像

it2024-12-30  14

docker 镜像使用得比较普遍,但在应用超算时,基本时用singularity镜像,而docker镜像是可以 转换成singularity镜像的。介绍如何将将本地docker镜像转换为singularity镜像。

需要有docker镜像仓,如果不借助docker的公共镜像仓,那就得在本地搭建个人的本地镜像仓, 以搭建本地的registry为例,操作如下:

如果并没本地的registry镜像,可以参照官方的教程拉取,执行: docker run -d -p 5000:5000 --restart=always --name registry registry:2

将本地镜像推送到搭建好的本地镜像仓中: docker tag <complete_app_tag> localhost:5000/<namespace>/<\app_tag> docker push localhost:5000/<namespace>/<app_tag>

推送完后,如果是http而非https协议,则需要相应地改变singularity的build命令: SINGULARITY_NOHTTPS=1 singularity build <app_tag>.simg docker://localhost:5000/<namespace>/<app_tag>

成功后,在当前目录下,将生成<app_tag>.simg 的singularity文件 执行改singularity文件,可参考官方文档:https://sylabs.io/guides/2.6/user-guide/quick_start.html

最新回复(0)