我正在尝试将我的弹性文件系统 (EFS) 安装在我的 docker 容器中,以便它可以与 AWS 批处理一起使用。这是我所做的:
创建针对弹性容器服务 (ECS) 优化的新 AMI。我在这里遵循了本指南,以确保它上面有 ECS。我还将挂载放入
/etc/fstab
文件并验证我的 EFS 在重新启动后正在挂载 (/mnt/efs)。用我的新 AMI 测试了一个 EC2 实例,并验证我可以拉出 docker 容器并通过它传递我的挂载点
docker run --volume /mnt/efs:/home/efs -it mycontainer:latest
以交互方式运行 docker 映像向我显示我在 efs 中的数据
使用在启动时安装 EFS 的新 AMI设置新的计算环境。
创建 JOB 定义文件:
{ "jobDefinitionName": "MyJobDEF", "jobDefinitionArn": "arn:aws:batch:us-west-2:#######:job-definition/Submit:8", "revision": 8, "status": "ACTIVE", "type": "container", "parameters": {}, "retryStrategy": { "attempts": 1 }, "containerProperties": { "image": "########.ecr.us-west-2.amazonaws.com/mycontainer", "vcpus": 1, "memory": 100, "command": [ "ls", "/home/efs", ], "volumes": [ { "host": { "sourcePath": "/mnt/efs" }, "name": "EFS" } ], "environment": [], "mountPoints": [ { "containerPath": "/home/efs", "readOnly": false, "sourceVolume": "EFS" } ], "ulimits": [] }
}
运行 Job,查看日志
无论如何,虽然它没有说“找不到文件 /home/efs”,但它没有列出我的 EFS 中填充的任何内容,我将其解释为安装空 efs 的容器。我究竟做错了什么?我的 AMI 是否没有在计算环境中安装 EFS?