我正在尝试将弹性文件系统(EFS)安装在Docker容器中,以便可以与AWS Batch配合使用。这是我所做的:
创建针对弹性容器服务(ECS)优化的新AMI。我遵循this guide here以确保上面有ECS。我还将挂载放入/etc/fstab
文件中,并验证了重启后是否正在挂载我的EFS(/ mnt / efs)。
使用新的AMI测试了EC2实例,并验证了我可以拉docker容器并通过
docker run --volume /mnt/efs:/home/efs -it mycontainer:latest
交互式运行docker映像会显示我在efs中的数据
Set up a new compute enviorment和我的新AMI在启动时安装了EFS。
创建一个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": []
}
}
运行作业,查看日志
无论如何,尽管它没有说“未找到文件/ home / efs”,但它并没有在我的EFS中列出任何已填充的内容,这对于安装空efs的容器来说是我的意思。我究竟做错了什么?我的AMI是否没有在计算环境中安装EFS?
答案 0 :(得分:-1)
我在最近的博客文章中对此进行了报道
您需要为批处理实例设置启动模板,并且需要确保正确配置了子网/安全组。