web-dev-qa-db-ja.com

DockerSwarmモードでコンテナをログに記録する方法

DockerSwarmモードでdocker service createで作成されたコンテナーをログに記録する方法はありますか?

12
sope

最後に、その機能は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/

16
db80

この機能はまだ実装されていません。 @ronkotが言ったように、どのノードがサービスインスタンスを実行しているかを把握し、それに直接接続する必要があります。

この機能が将来実装される可能性がある場合でも、クラスターのすべてのログを一元化するために、Dockerロギングドライバーを試してみることを強くお勧めします。詳細は次のとおりです。 https://docs.docker.com/engine/admin/logging/overview/

たとえば、Logstash + Kibanaのようなものを使用したい場合は、gelfドライバーが最適です:-)

5
Brice Argenson