amazon-web-services - 如何在 AWS 上运行的 docker 容器上挂载基于 FUSE 的文件系统?
问题描述
我需要在必须在 AWS ECS Fargate 上执行的 docker 容器上安装基于 FUSE 的文件系统(使用rclone )。
使用以下命令在本地运行容器没有问题:
docker run --rm --device /dev/fuse --cap-add SYS_ADMIN <IMAGE_NAME>
在 AWS ECS Fargate 上,docker 容器无法正常工作,因为在 AWS ECS 上定义任务时,我还没有找到如何设置标志--device和--cap-add 。任何建议将不胜感激。
解决方案
不幸的是,我无法找到问题的直接解决方案。这是我当时使用的解决方法:
我切换到 EC2 类型的 ECS 任务是因为,您可以在官方文档中看到,标志--device和--cap-add曾经并且仍然不可用于在 Fargate 上启动的任务。
这样,只有通过任务的 JSON 定义,我才能添加我需要的标志。下面是一个示例 json 定义,显示了如何添加这些属性:
{
... other properties
"containerDefinitions": [
... other properties
"linuxParameters": {
"capabilities": {
"add": [
"SYS_ADMIN"
],
"drop": null
},
... other properties
"devices": [
{
"containerPath": "/dev/fuse",
"hostPath": "/dev/fuse",
"permissions": null
}
],
... other properties
},
... other properties
],
... other properties
}
推荐阅读
- npm - 关于 windows 中的 mocha
- docker - Gitlab Online 中的 Kubernetes 持续部署阶段失败
- php - PayPal IPN 显示正常,但是 sendmail 不会发送电子邮件
- sed - 通过 sed 命令处理文本
- wordpress - 在 WordPress 中按 ID 显示特定标签
- delphi - 通过 TWebBrowser 控件 (MSHTML) 逐字导航
- vim - 每当我在 vim 中更改源文件时,如何自动运行 vim 脚本?
- node.js - Flow+Webstorm“无法解析模块”
- vuejs2 - VueJS 2/Bootstrap 4 - 防止从 bootstrap 4 的数据切换事件中关注元素
- php - php从数据库中获取日期列