DockerSwarmモードでdocker service create
で作成されたコンテナーをログに記録する方法はありますか?
最後に、その機能はdocker17.03に実装されました。次のコマンドを使用して、異なる/複数のノードで実行されているサービスのログを取得できます。
docker service logs -f {NAME_OF_THE_SERVICE}
次の方法でサービスの名前を取得できます。
docker service ls
これは実験機能(本番環境では使用できません)であり、使用するには実験モードを有効にする必要があることに注意してください。
更新:docker logsサービスがdocker> = 17.06の標準機能になりました。 https://docs.docker.com/engine/reference/commandline/service_logs/
この機能はまだ実装されていません。 @ronkotが言ったように、どのノードがサービスインスタンスを実行しているかを把握し、それに直接接続する必要があります。
この機能が将来実装される可能性がある場合でも、クラスターのすべてのログを一元化するために、Dockerロギングドライバーを試してみることを強くお勧めします。詳細は次のとおりです。 https://docs.docker.com/engine/admin/logging/overview/
たとえば、Logstash + Kibanaのようなものを使用したい場合は、gelfドライバーが最適です:-)