amazon-web-services - 我们可以在 AWS ECS docker 容器上挂载 EFS 吗?

标签 amazon-web-services amazon-ec2 amazon-ecs amazon-efs

我有一个运行我的 docker 容器的 ECS 实例。我想在 ECS 上运行的 docker 容器上挂载 EFS。那怎么可能呢?

我可以在 ECS 实例上挂载 EFS,但不能在 ECS 上运行的 docker 容器上挂载。

EFS 具有直接连接功能,并且能够在 docker 的 2049 端口上 telnet 它。

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 X.X.X.X://efs

错误是:- mount.nfs4:不允许操作

最佳答案

更新; 2020 年 1 月 17 日 - 预览 ECS/EFS 支持

2020 年 1 月 17 日 AWS announced an preview for ECS support for EFS .需要注意的是,这是目前的预览版本;请参阅 configuration documentation 中有关这意味着什么的信息.

您可以简单地定义新的 EFSVolumeConfiguration,而不是定义体积及其所有连接参数。目的。

"EFSVolumeConfiguration": {
  "fileSystemId": "fs-xxxxxx",
  "rootDirectory": "/mnt/volume/path"
}

原答案

截至 2018 年 8 月,有了 docker volume 支持,您现在可以 mount NFS shares directly into an ECS container .

当前可用的文档没有详细说明如何通过 docker volume 将 EFS 与 ECS 一起使用,但是这是可能的。

配置 docker 卷

首先,包含一个 volumes任务配置中的部分类似于以下内容:
"volumes": [
   {
     "name": "efs",
     "host": null,
     "dockerVolumeConfiguration": {
       "autoprovision": null,
       "labels": null,
       "scope": "task",
       "driver": "local",
       "driverOpts": {
         "type": "nfs",
         "device": ":/",
         "o": "addr=<fs-id>.efs.us-east-1.amazonaws.com,nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"
       }
     }
   }
]

确保更新 addr o 内的参数选项以匹配您的 EFS 文件系统的 DNS 名称。

然后,将此卷包含在您的容器定义之一的安装中。有关语法的更多信息,请参阅 Docker Volumes .
"containerDefinitions": [
    {
        "mountPoints": [
            {
                "sourceVolume": "efs",
                "containerPath": "/path/to/mount_volume",
                "readOnly": false
            }
        ]
    }
]

用于 NFS 连接的配置选项是 AWS 在撰写本文时为 Mounting EFS filesystems 推荐的选项。 .

关于amazon-web-services - 我们可以在 AWS ECS docker 容器上挂载 EFS 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48986933/

相关文章:

amazon-web-services - 我们可以根据请求 header 添加 CloudFront 行为吗?

node.js - 不支持查询关键条件: Already have a Hash and a Range Key

java - AWS DynamoDb 使用主键和排序键删除项目

amazon-web-services - 列出缺少特定标签的卷

java - 运行您自己的 GAE 服务器

amazon-web-services - 在 AWS ECS 上使用 docker-compose 进行持续部署的最佳实践

ELB : Which host gets the ELB HTTP health check query? 后面的 Amazon EC2 实例下的 Tomcat 虚拟主机

amazon-web-services - Amazon ECS故障排除任务启动失败

amazon-web-services - AWS Batch 作业在计算环境中以 Min vCPUs=0 启动时间过长

docker - 在docker容器内删除的文件没有释放空间