本文介绍了AWS Fargate-卷的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的Docker撰写文件出现问题:这是我的Docker撰写文件:version: '3'
services:
nginx-proxy:
image: xxxxx.dkr.ecr.xxxxx.amazonaws.com/xxxx:latest
container_name: "nginx-proxy"
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
...
这是以下错误:
ClientException: host.sourcePath should not be set for volumes in Fargate
我的任务定义:
"mountPoints": [],
...
"volumes": [],
...
"readonlyRootFilesystem": false,
我还希望我的卷为"只读"。
有人知道我需要在docker编写器文件上使用哪个变量名吗?
有人能帮帮我吗?
谢谢
推荐答案
Fargate不允许您为绑定装载指定host
或sourcePath
。您可以check the docs for bind volumes和the overview for Fargate task storage docs了解更多信息。Fargate的主要前提是它将底层主机与任务混淆,因此您作为最终用户与主机交互的选项非常少-您不能ssh到它,也不能接触它的文件系统。在绑定挂载的情况下,您不能指定host
,因为您不知道部署时主机的名称或位置,并且您不能进一步指定sourcePath
,因为您不能了解主机上的任何文件系统。
特别是在尝试装载docker.sock
的情况下,这将允许您访问主机上运行的每个容器,这些容器可能属于其他帐户/AWS用户。这对所有人来说都是非常糟糕的。
我可以将绑定装载与Fargate一起使用吗?
是的。尽管它的用处可能有限,因为您将无法访问底层主机的文件系统来检索从容器传递到主机的任何文件。
因此,绑定挂载的答案基本上是不指定host
,Docker守护进程只会为您创建一个路径。这有帮助吗?你的情况可能不是这样。 这篇关于AWS Fargate-卷的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!