如何使用Fargate在AWS ECS中的运行容器中运行命令

时间:2018-07-28 11:25:45

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

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

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

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

3 个答案:

答案 0 :(得分:10)

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

  

一些警告:无法执行到容器中或访问底层   主持人(这也是一件好事)

在ECS CLI github项目中的open issue上也对此进行了一些讨论。

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

答案 1 :(得分:1)

截至 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/

答案 2 :(得分:0)

AWS Fargate是一项托管服务,因此不允许访问容器是有意义的。 如果您需要对容器进行故障排除,则可以随时增加在容器中运行的应用的日志级别。

  

” Docker容器实际上是不可变的。这意味着正在运行   容器永远不会更改,因为万一您需要对其进行更新,   最佳做法是使用更新后的版本创建一个新容器   您的应用程序并删除旧的应用程序。”

希望有帮助。