AWS Fargate - 卷

Cha*_*hab 5 amazon-web-services amazon-ecs docker aws-fargate

我的 docker compose 文件有问题:这是我的 docker compose 文件:

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
...
Run Code Online (Sandbox Code Playgroud)

这是以下错误:

ClientException: host.sourcePath should not be set for volumes in Fargate
Run Code Online (Sandbox Code Playgroud)

我的任务定义:

"mountPoints": [],
...
"volumes": [],
...
"readonlyRootFilesystem": false,
Run Code Online (Sandbox Code Playgroud)

我还希望我的卷是“只读”的。

有谁知道我需要在 docker 作曲家文件中使用哪个变量名?

有人能帮我吗?

谢谢

blu*_*res 6

有谁知道我需要在 docker 作曲家文件中使用哪个变量名?

Fargate 不允许您为绑定安装指定host或。sourcePath您可以查看绑定卷的文档Fargate 任务存储文档的概述以了解更多信息。

Fargate 的大前提是它混淆了任务中的底层主机,因此作为最终用户,您与主机交互的选项非常少 - 您无法 ssh 到它,也无法触及其文件系统。在绑定安装的情况下,您无法指定 ,host因为您在部署时不知道主机的名称或位置,并且无法进一步指定 ,sourcePath因为您无法了解有关文件系统的任何信息主人。

在尝试挂载的情况下docker.sock,特别是,这将使您可以访问主机上运行的每个容器,这些容器可能属于其他帐户/aws 用户。那样的话一切都会很糟糕。

我可以将绑定安装与 Fargate 一起使用吗?

是的。尽管它的用处可能有限,因为您将无法访问底层主机的文件系统来检索从容器传递到主机的任何文件。

如果主机容器实例上不存在 sourcePath 值,Docker 守护程序将创建它。

因此,绑定挂载的答案本质上是不指定host,Docker 守护进程只会为您创建一个路径。有帮助吗?可能不是你的情况。