【问题标题】:How can I run commands in a running container in AWS ECS using Fargate如何使用 Fargate 在 AWS ECS 中正在运行的容器中运行命令
【发布时间】:2019-01-05 08:15:41
【问题描述】:

如果我使用 EC2 在 AWS ECS 中运行容器,那么我可以访问正在运行的容器并执行任何命令。

即。 docker exec -it <containerid> <command>

如何使用 Fargate 在正在运行的容器中运行命令或访问 AWS ECS 中的容器?

【问题讨论】:

    标签: amazon-web-services aws-ecs aws-fargate


    【解决方案1】:

    更新(2021 年 3 月 16 日):

    AWS announced 一项名为 ECS Exec 的新功能提供了执行到 Fargate 上正在运行的容器甚至在 EC2 上运行的容器的能力。此功能利用 AWS Systems Manager (SSM) 在客户端和目标容器之间建立安全通道。这篇来自亚马逊的详细博客 post 描述了如何使用此功能以及所有先决条件和配置步骤。

    原答案:

    使用 Fargate,您无法访问底层基础架构,因此 docker exec 似乎不可能。文档没有明确提到这一点,但亚马逊在Deep Dive into AWS Fargate presentation 中提到了这一点,在幻灯片 19 中提到了这一点:

    一些注意事项:不能执行到容器中,或者访问底层 主持人(这也是好事)

    在 ECS CLI github 项目中的 open issue 上也有一些讨论。

    您可以尝试在容器内运行 SSH 服务器以获取访问权限,但我没有尝试过,也没有遇到任何这样做的人。这似乎也不是一个好方法,所以你被限制在那里。

    【讨论】:

      【解决方案2】:

      AWS Fargate 是一项托管服务,不允许访问容器是有意义的。 如果您需要对容器进行故障排除,您始终可以提高在容器中运行的应用程序的日志级别。使用容器的最佳实践说

      "Docker 容器实际上是不可变的。这意味着一个正在运行的 容器永远不会改变,因为如果您需要更新它, 最佳实践是使用更新版本的 您的应用程序并删除旧的。”

      希望对你有帮助。

      【讨论】:

        【解决方案3】:

        截至 2021 年 3 月 16 日,AWS 推出了 ECS Exec,可用于在 EC2 或 Fargate 中运行的容器上运行命令。 网址将在 https://aws.amazon.com/about-aws/whats-new/2021/03/amazon-ecs-now-allows-you-to-execute-commands-in-a-container-running-on-amazon-ec2-or-aws-fargate/

        【讨论】:

        • 你的意思是“没有”?
        • 抱歉,感谢您的突出显示.. 将其更改为“有”
        猜你喜欢
        • 2019-05-20
        • 2019-10-29
        • 1970-01-01
        • 2019-09-25
        • 1970-01-01
        • 2020-10-18
        • 2022-10-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多