0

我正在尝试提取 docker 映像,但必须使用奇异性。我怎样才能做到这一点?这是我正在运行的脚本。

cp -rp ~/adversarial-policies/ $SLURM_TMPDIR
cd adversarial-policies/
singularity pull docker://humancompatibleai/adversarial_policies:latest
singularity run -it --env MUJOCO_KEY=~/.mujoco/mjkey.txt ./adversarial_policies-latest.simg 
source ./modelfreevenv/bin/activate
python -m modelfree.multi.train with paper --path $SLURM_TMPDIR --data-path $SLURM_TMPDIR
cp $SLURM_TMPDIR/job-output.txt /network/tmp1/gomrokma/
cp $SLURM_TMPDIR/error.txt /network/tmp1/gomrokma/

我得到的错误是ERROR: Unknown option: --build-arg ERROR: Unknown option: -it.

任何帮助,将不胜感激。我是使用奇异容器而不是 docker 的新手

4

1 回答 1

0

Singularity 和 Docker 都是容器,但它们并不是相互替代的。我强烈建议您阅读您正在使用的奇异性的相关版本的文档。最新版本有一个很好的部分介绍了一起使用docker和singularity


如果您使用的是singularity v3 或更新版本,则从中创建的文件singularity pull将命名为adversarial_policies_latest.sif,而不是adversarial_policies-latest.simg. 如果 v2 是集群上唯一可用的版本,请让管理员安装 v3。2.6.1 是唯一没有安全问题的 v2,它不再获得任何更新。

至于singularity run ...-itdocker 选项是强制交互式 tty 会话而不是在后台运行。singularity exec并且singularity run两者都将始终在前台运行,因此没有等效的必需选项可用于奇异性。传递环境变量的处理方式也不同。由于容器是以您的用户身份运行的,因此它将您的环境传递给它。您可以export MUJOCO_KEY=~/.mujoco/mjkey.txt进一步设置脚本,也可以仅为命令设置它:MUJOCO_KEY=~/.mujoco/mjkey.txt singularity run ./adversarial_policies-latest.simg.

于 2019-10-09T08:56:45.490 回答