InfluxのTelegrafでStatsd Dockerコンテナを実行しようとしています。 Dockerfileは、超簡単です:弾性ビーンストークシングルドッカーコンテナ - UDPポートは公開されていますが、EC2インスタンスにはマッピングされていません
FROM telegraf:latest
# Configure Telegraf
ADD telegraf.conf /etc/telegraf/
# Expose the statsd port
EXPOSE 8125:8125
# Start the service
CMD telegraf
注:ポート上の露出したポート8125
ザ・私はポートが実際にさらされていることがわかりますdocker ps -a
を実行します。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8398e36c4e48 e26197bce0cc "/entrypoint.sh /b..." 16 hours ago Up 16 hours 8094/tcp, 8092/udp, 8125/udp, 8125/tcp inspiring_goodall
問題それらがマップされていないということです。パケットが作る場合はテストすることによって、私はこのすべてを確認することができます
"Ports": {
"8092/udp": null,
"8094/tcp": null,
"8125/tcp": null,
"8125/udp": [
{
"HostIp": "0.0.0.0",
"HostPort": "8125"
}
]
}
:私は正しいだ場合、それはこのような何かに似ている必要があります
"Ports": {
"8092/udp": null,
"8094/tcp": null,
"8125/tcp": null,
"8125/udp": null
}
:docker inspect <ID>
から私は、ネットワーク設定から、以下を参照してくださいすることができますそれをEC2のインスタンスに、そしてドッキング・コンテナ内に配置します。
ワン(ないコンテナ内)、私はそうのようtcpdump
を経由してトラフィックパケットを監視し、インスタンスがポート8125でUDPパケットを読んであることがわかります。そして、
[[email protected]_HOTNAME ec2-user]# tcpdump -n udp port 8125
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
10:34:56.190739 IP BLOCKED_HOSTNAME > BLOCKED_HOSTNAME: UDP, length 46
10:34:57.199689 IP BLOCKED_HOSTNAME > BLOCKED_HOSTNAME: UDP, length 46
10:34:58.179673 IP BLOCKED_HOSTNAME > BLOCKED_HOSTNAME: UDP, length 46
しかしときI容器にdocker exec
、と私は何を取得tcpdump
を実行します - それはちょうどここに座っている:
[email protected]:/# tcpdump -i eth0 -n udp port 8125
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
はなぜインスタンスにマッピングされて晒さポートではありませんか?
注:これは単一のコンテナ環境で実行する必要があるため、複数のコンテナを提案しないでください。
- 自動的に起動しますドッカーコンテナ。私はBeanstalkを 'docker run'引数で設定する方法があると思っていますが、どういう形になっているのか分かりません... –
正直言って私は決して使ったことはありませんが、 /docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_dockerpreconfig.walkthrough.htmlまた、これを実現するには、コンテナをリンクする必要があります。したがって、何もマッピングせずに互いに話すことができます。 – Sergiu
残念ながら、EBは私がこの特定のユースケースに対して欲しいものをまったく行っていません。私はUDPサポートを必要とし、ELBはUDPサポートが不足しているため、このために複数のコンテナ環境を実行することはできません。ですから、私は単一のコンテナ環境に悩まされています。私はEBがドッキング・コンテナの起動方法を定義する開発者のサポートを欠いていることに驚いています。 –