ale*_*lex 5 containers docker singularity-container
我目前正在研究奇异性和 docker。我正在运行 MPI 环境的奇点。
我想利用 MPI 的奇点优势,但奇点文件非常大。因此,在运行奇点映像后,我想将其转换为 docker 映像,然后保存它,这将节省磁盘空间。
是否可以将奇点图像转换为 docker 图像?
正如 @tsnowlan 在他们的回答中所说,通常工作流程是从 Docker 到 Singularity。但是有一种方法可以从现有的 Singularity 镜像制作 Docker 镜像。这不会利用 Docker 的层缓存功能。
总体思路是:
这是在 bash 中,在 上演示alpine:latest:
singularity pull docker://alpine:latest
# Find out which SIF ID to use (look for Squashfs)
singularity sif list alpine_latest.sif
# Get the environment variables defined in the Singularity image.
singularity sif dump 2 alpine_latest.sif
singularity sif dump 3 alpine_latest.sif > data.squash
unsquashfs -dest data data.squash
# See the Dockerfile definition below
docker build --tag alpine:latest .
Run Code Online (Sandbox Code Playgroud)
Dockerfile 的内容:
FROM scratch
COPY data /
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["/bin/ash"]
Run Code Online (Sandbox Code Playgroud)
有关 Singularity 和 Docker 的更多信息,我建议查看有关该主题的 Singularity 文档。
使用 Singularity 容器化 MPI 应用程序并不是非常困难,但它是以对主机系统提出额外要求为代价的。
这意味着您必须为此自定义图像选择正确的图像库。像这个例子:
FROM tacc/tacc-ubuntu18-mvapich2.3-psm2:0.0.2
RUN apt-get update && apt-get upgrade -y && apt-get install -y python3-pip
RUN pip3 install mpi4py
COPY pi-mpi.py /code/pi-mpi.py
RUN chmod +x /code/pi-mpi.py
ENV PATH "/code:$PATH"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4458 次 |
| 最近记录: |