每个AWS批处理作业是否都会启动一个新的Docker容器

时间:2018-09-07 06:50:08

标签: amazon-web-services docker aws-ecs aws-batch

每次提交批处理作业时,都会创建一个新的Docker容器,还是会重复使用旧的容器。

如果每次都创建一个新的Docker容器,那么工作完成后容器会发生什么情况。

在AWS ECS中,ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION变量设置从任务停止到移除Docker容器为止的等待时间(默认为3小时)

如果所有这些容器仅在三个小时后才被清理干净,那么如果我提交大量工作,ECS容器实例是否会很快被迅速填充?

获取此错误CannotCreateContainerError:API错误(500):运行批处理作业时出现devmapper。如果我在工作结束时清理Docker容器文件是否有帮助?

1 个答案:

答案 0 :(得分:1)

  

每次提交批处理作业时,都会创建一个新的Docker容器,还是会重复使用旧的容器。

是的。在Batch上运行的每个作业将作为新的ECS任务运行,这意味着每个作业都有一个新的容器。

  

如果所有这些容器仅在三个小时后才被清理干净,那么如果我提交大量工作,ECS容器实例是否会很快被迅速填充?

这全部取决于您的工作负载,长度,作业长度,磁盘使用情况等。对于大量占用磁盘的短作业,这完全有可能。

  

CannotCreateContainerError: API error (500): devmapper

Documentation for this error指出了一些可能的解决方案,但是在这种情况下,您已经提到的第一个解决方案可能无济于事。

ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION在ECS上默认为3h,在批处理群集上默认设置为2m-您可以检查一个批处理实例上的EC2用户数据,以验证是否在您的批处理实例上设置了EC2用户数据集群。根据群集的使用期限,这些设置可能会更改。在不创建整个新集群的情况下,Batch不会自动更新到最新的ECS优化AMI,因此如果它也不更改设置,我也不会感到惊讶。

如果您的清除持续时间设置当前设置为较低,则you might try creating a custom AMI会提供比正常Docker更大的卷。默认情况下,ECS优化的AMI附带8GB的根驱动器和Docker的22GB容量。