【问题标题】:How to find the status of a running process inside docker container in AWS?如何在 AWS 的 docker 容器中查找正在运行的进程的状态?
【发布时间】:2019-02-08 04:16:16
【问题描述】:

我有一个在 AWS 的容器中运行的应用程序(任务)。我需要知道它的当前状态,还需要确保它运行时容器不会退出并在运行过程中杀死它。
这是一个 C++ 二进制文件。

  1. 服务 - 创建服务将确保其故障安全,但我如何从外部读取此信息。我可以使用正确的退出代码退出应用程序,但服务只会以这种方式一次又一次地重新创建任务,这是一种负担。

是否有推荐的方式从 ECS 容器中的进程进行通信以了解它目前正在做什么?

【问题讨论】:

  • 您正在寻找类似于“顶级”给您的东西吗?或者您正在寻找日志? “状态”这个词有点模棱两可……你只是想知道进程是否正在运行?
  • 更像日志,但只是日志的一个子集。我可以获取整个日志并通过它来了解该过程正在做什么,但想知道是否有更好的方法可以通过仪表板来处理这个问题。类似于去服务->任务->(查看进程在做什么)更新/调用函数/等等。

标签: c++ amazon-web-services docker amazon-ecs


【解决方案1】:

查看ECS容器日志有两种方式:

  1. 通过 SSH 连接到 ECS 创建的 EC2 实例,运行 docker ps 以查找容器 ID,运行 docker logs container_id 以查看容器中发生的情况。 (如果您使用 Fargate 创建了集群,这将不起作用,因为它不会创建 EC2 实例,它只会创建一个网络接口)

  2. 在 AWS 上配置 Cloudwatch 以查看容器活动。要配置日志,您必须创建任务定义的新版本 > 打开容器 > 在存储和日志记录下取消选中 自动配置 CloudWatch 日志 > 选择日志驱动程序作为 awslogs > 标记您的组、区域和前缀键。 要查看您的日志,请单击集群中的任务选项卡 > 打开您的任务 > 展开您的容器 > 底部显示日志配置以及指向您的容器日志的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 2014-10-16
    • 2017-03-10
    相关资源
    最近更新 更多