mah*_*hod 5 amazon-ec2 amazon-web-services amazon-ecs amazon-efs
我有一个在其Docker容器上运行的ECS实例。我想在ECS上运行的Docker容器上挂载EFS。那有可能吗?
我可以在ECS实例上安装EFS,但不能在ECS上运行的Docker容器上安装EFS。
EFS具有直接连接功能,并能够从Docker在2049端口上进行telnet。
挂载-t nfs4 -o nfsvers = 4.1,rsize = 1048576,wsize = 1048576,hard,timeo = 600,retrans = 2 XXXX:/ / efs
错误是:-mount.nfs4:不允许操作
Luk*_*ite 12
自2018年8月起,有了docker卷支持,您现在可以将NFS共享直接安装到ECS容器中。
当前可用的文档没有详细介绍如何通过Docker卷将EFS与ECS一起使用,但是可以的。
首先,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"
}
}
}
]
Run Code Online (Sandbox Code Playgroud)
确保更新选项addr内的参数o以匹配EFS文件系统的DNS名称。
然后,将此卷包含在容器定义之一的安装架中。有关语法的更多信息,请参阅Docker Volumes。
"containerDefinitions": [
{
"mountPoints": [
{
"sourceVolume": "efs",
"containerPath": "/path/to/mount_volume",
"readOnly": false
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
用于NFS连接的配置选项是AWS在编写用于挂载EFS文件系统的建议的选项。
它应该是您的任务定义的一部分,您需要在任务定义中添加卷,然后在源卷选项中引用它,这里是来自AWS的教程。
https://aws.amazon.com/blogs/compute/using-amazon-efs-to-persist-data-from-amazon-ecs-containers/
"volumes": [
{
"name": "efs",
"host": {
"sourcePath": "/mnt/efs/mysql"
}
}
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3962 次 |
| 最近记录: |