gpt4 book ai didi

amazon-web-services - 如何使用参数在 ECS 上运行 nginx 反向代理容器

转载 作者:行者123 更新时间:2023-12-01 00:43:27 24 4
gpt4 key购买 nike

我在这里有一个稍微修改过的容器版本:

http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/

要在本地运行它,我使用:

$ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock -t jwilder/nginx-proxy

并运行类似于以下内容的其他容器:
$ docker run -e VIRTUAL_HOST=my-domain.local -t -d my-repo/site-name

我无法将其转换为 ECS 上的任务定义。

任务定义

我有两个容器:

nginx-反向代理
  • 端口映射:主机 80 容器 80
  • 基本:真实
  • 命令:/app/docker-entrypoint.sh

  • 静态站点
  • 端口映射:主机 5000 容器 5000
  • 本质:假
  • 命令:/some-file.sh
  • 环境变量:VIRTUAL_HOST static.example.com

  • 我有一个集群,其中包含一个 ECS 实例和一个服务器,上面定义了一项任务。这会保持循环并以“STOPPED(退出任务中的基本容器)”失败。

    现在我假设我需要设置卷,但我能找到的所有示例都有一个路径和一个名称,我看不出如何将这个“/var/run/docker.sock:/tmp/docker.sock”转换为任何可用字段。

    最佳答案

    我来晚了,但无论如何我都会为将来遇到这篇文章的人回答。

    你自己回答了。它失败是因为您没有从主机共享 Docker 套接字,这对 nginx 代理镜像至关重要。

    转到您的任务定义并添加一个新卷。将其命名为 socket 并指定主机路径/var/run/docker.sock。然后编辑你的 nginx 代理容器,在 Mount Points 下选择 socket 作为源卷和/tmp/docker.sock 作为容器路径。出于安全原因也将其标记为只读。将此容器的 Command 部分保留为默认值。

    部署您的新修订,它现在应该可以工作了。

    关于amazon-web-services - 如何使用参数在 ECS 上运行 nginx 反向代理容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36155154/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com