Skip to main content

额外的Docker Shell脚本

当使用clearml-agent时,代理会重新创建整个执行环境,无论是通过拉取docker容器还是安装指定的包,然后在远程机器上执行代码。代理会考虑所需的Python包,但有时,当使用Docker容器时,用户可能需要使用额外的非Python工具。

教程

在本教程中,您将学习如何使用extra_docker_shell_script重新配置代理,以便在启动docker时但在运行实验之前执行shell脚本。

先决条件

  • clearml-agent 已下载并配置 - 在可以访问您想要配置的代理配置文件的机器上工作
  • 任何带有ClearML任务的代码。

步骤

  1. 打开您的ClearML配置文件进行编辑。根据您的操作系统,它位于:

    • Linux - ~/clearml.conf
    • Mac - $HOME/clearml.conf
    • Windows - \User\\clearml.conf
  2. 在文件中,转到extra_docker_shell_script:,这是你将放置额外脚本的地方。如果它被注释掉了,请确保取消注释该行。使用已经存在的示例脚本["apt-get install -y bindfs", ]

  3. 在文档中搜索并转到docker_force_pull,并确保它设置为true,以便您的docker镜像将被更新。

  4. 在docker模式下运行clearml-agentclearml-agent daemon --docker --queue default。代理将使用默认的Cuda/Nvidia Docker镜像。

  5. 将任何ClearML任务加入default队列,代理现在正在监听该队列。代理拉取任务,然后重现它,现在它将执行配置文件中放置的extra_docker_shell_script。然后代码将在更新的docker容器中执行。如果您查看Web UI中的控制台输出,第三个条目应该以Executing: ['docker', 'run', '-t', '--gpus...'开头,并且在条目的末尾,提到下载的包时,您可以看到额外的shell脚本apt-get install -y bindfs