将 Docker 作业提交到 LSF

使用 Docker 应用程序概要文件 或队列 将 Docker 作业提交到 LSF

关于本任务

容器作业不支持以下作业提交 (bsub) 选项: -E-Ep

过程

  1. 将作业提交到 Docker 应用程序概要文件或队列。
    • 使用 bsub -app 选项将作业提交到 Docker 应用程序概要文件 (即,具有 CONTAINER 参数的指定值的应用程序概要文件)。

      例如,如果在 dockerapp 应用程序概要文件中定义了 CONTAINER ,请运行以下命令以提交 Docker 作业:

      bsub -app dockerapp ./myjob.sh

    • 使用 bsub -q 选项将作业提交到 Docker 队列 (即,具有 CONTAINER 参数的指定值的队列)。

      例如,如果在 dockerq 队列中定义了 CONTAINER ,请运行以下命令以提交 Docker 作业:

      bsub -q dockerq ./myjob.sh

    如果在同一作业提交中同时指定应用程序概要文件和队列,那么应用程序概要文件中的 CONTAINEREXEC_DRIVERDOCKER_IMAGE_AFFINITY 参数设置优先于队列中的相同参数设置。

    例如,如果使用以下命令提交作业,那么 dockerapp 应用程序概要文件中的参数将覆盖 dockerq 队列中的相应参数:

    bsub -app dockerapp -q dockerq ./myjob.sh

  2. 如果允许用户在作业提交时为 Docker 容器作业指定映像名称 (即,如果在指定 image 关键字时使用 $LSB_CONTAINER_IMAGE 环境变量作为映像名称) ,请在作业提交时设置 LSB_CONTAINER_IMAGE 环境变量以指定 Docker 映像名称。

    通过使用下列其中一种方法设置 LSB_CONTAINER_IMAGE 环境,在作业提交时指定容器映像名称 (例如 ubuntu):

    • 根据 shell 环境指定 LSB_CONTAINER_IMAGE 环境变量。 例如,要指定名为 ubuntu的 Docker 映像,请按如下所示设置环境变量:
      • cshtcsh中:

        setenv LSB_CONTAINER_IMAGE ubuntu

      • shkshbash中:

        export LSB_CONTAINER_IMAGE=ubuntu

    • 使用 bsub -env 选项。 例如,要指定名为 ubuntu 的 Docker 映像

      bsub -env LSB_CONTAINER_IMAGE=ubuntu -app udocker a.out -in in.dat -out out.dat

    • 使用 esub 脚本设置 LSB_CONTAINER_IMAGE 环境变量,然后使用 bsub 命令调用 esub :
      例如,在 $LSF_SERVERDIR 目录中创建具有以下内容的 esub.docker 脚本:
      #!/bin/sh
      exec 1>&2
      echo "LSB_CONTAINER_IMAGE=\"$1\"" >> $LSB_SUB_MODIFY_ENVFILE

      通过运行以下命令,提交作业以调用 esub.docker 脚本:

      bsub -a "docker(ubuntu)" -app udocker a.out -in in.dat -out out.dat

  3. 要使用 Docker 入口点映像提交作业,但不使用命令,请使用 LSB_DOCKER_PLACE_HOLDER 关键字代替命令。

    例如,运行以下命令以使用 Docker 入口点映像提交 Docker 作业:

    bsub -app dockerapp LSB_DOCKER_PLACE_HOLDER

  4. 可选: 要在集群,队列或应用程序级别覆盖 Docker 映像亲缘关系设置,请在提交 Docker 作业时使用 -env 选项定义 LSB_DOCKER_IMAGE_AFFINITY 环境变量。

    LSB_DOCKER_IMAGE_AFFINITY=Y | y | N | n

    作业级别环境变量覆盖应用程序级别,而应用程序级别覆盖队列级别,而队列级别覆盖集群级别配置。

    bsub -env LSB_DOCKER_IMAGE_AFFINITY=N -app udocker a.out -in in.dat -out out.dat