如果我正在使用EC2在AWS ECS中运行容器,那么我可以访问正在运行的容器并执行任何命令。
即。
docker exec -it <containerid> <command>
如何使用Fargate在运行中的容器中运行命令或访问AWS ECS中的容器?
答案 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容器实际上是不可变的。这意味着正在运行 容器永远不会更改,因为万一您需要对其进行更新, 最佳做法是使用更新后的版本创建一个新容器 您的应用程序并删除旧的应用程序。”
希望有帮助。