【问题标题】:From inside of a Docker container, how do I connect to the endpoint?如何从 Docker 容器内部连接到端点?
【发布时间】:2022-12-16 08:05:58
【问题描述】:

我在 EC2 实例中安装了一个 cloudwatch 代理,还在该实例上安装了一个 docker 镜像。 从 EC2 实例,我可以成功地将日志发送到端点 (0.0.0.0:25888) 到 cloudwatch。但是,当我使用docker exec -it <container id> bash 进入 docker 镜像时,我尝试从容器内部发布相同的日志,但失败并出现以下错误:

2861 2022-07-21 00:11:18,686 ERROR (10.0.1.124,1385:MainThread) aws_embedded_metrics.sinks.tcp_client: Failed to connect to the socket. [Errno 111] Connection refused
2862 2022-07-21 00:11:18,686 INFO (10.0.1.124,1385:MainThread) aws_embedded_metrics.sinks.agent_sink: Parsed agent endpoint (tcp) 0.0.0.0:25888

想知道是否有人知道这里的根本原因或任何调试线索?提前致谢!

【问题讨论】:

    标签: docker amazon-ec2 containers docker-networking docker-network


    【解决方案1】:

    我也遇到了这个。我的解决方案(解决方法?)是:

    1. 确保 cloudwatch 代理正在监听 udp://0.0.0.0:25888 而不是 127.0.0.1(默认)。我看到的 CWAgent 文档没有关于如何实现这一点的任何示例。
    2. 进入容器后,使用 Docker 主机 IP 发送消息。对我来说,这是export AWS_EMF_AGENT_ENDPOINT=udp://172.17.0.1:25888,因为我使用的是aws-embedded-metrics-python。 YMMV 取决于您使用的基础库。

    【讨论】:

      猜你喜欢
      • 2018-10-20
      • 2020-02-08
      • 2015-11-28
      • 2016-05-19
      • 1970-01-01
      • 2018-04-05
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多