如何使用参数 运行 ECS 上的 nginx 反向代理容器
How do I run an nginx reverse proxy container on ECS using arguments
我这里有一个稍微修改过的容器版本:
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 (Essential container in task exited)".
现在我假设我需要设置卷,但我能找到的所有示例都有路径和名称,我看不出如何转换这个 "/var/run/docker.sock:[=59= .sock" 到任何可用字段。
我来晚了,但无论如何我都会为以后遇到此问题的人post回答。
你自己回答了。它失败了,因为您没有从主机共享 Docker 套接字,这对 nginx 代理映像至关重要。
转到您的任务定义并添加一个新卷。将其命名为 socket 并指定主机路径 /var/run/docker.sock。然后编辑你的 nginx 代理容器并在挂载点下选择 socket 作为源卷和 /tmp/docker.sock 作为容器路径。出于安全原因,也将其标记为只读。使用默认值保留此容器的命令部分。
部署您的新修订版,它现在应该可以工作了。
我这里有一个稍微修改过的容器版本:
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 (Essential container in task exited)".
现在我假设我需要设置卷,但我能找到的所有示例都有路径和名称,我看不出如何转换这个 "/var/run/docker.sock:[=59= .sock" 到任何可用字段。
我来晚了,但无论如何我都会为以后遇到此问题的人post回答。
你自己回答了。它失败了,因为您没有从主机共享 Docker 套接字,这对 nginx 代理映像至关重要。
转到您的任务定义并添加一个新卷。将其命名为 socket 并指定主机路径 /var/run/docker.sock。然后编辑你的 nginx 代理容器并在挂载点下选择 socket 作为源卷和 /tmp/docker.sock 作为容器路径。出于安全原因,也将其标记为只读。使用默认值保留此容器的命令部分。
部署您的新修订版,它现在应该可以工作了。