2017-05-10 15 views
1

私のコンテナのログを、すべてのコンテナのホストマシンのファイルに保存したいと考えています。私はlogging driver経由で同じことをすることについてお読みください。ドッカー - ホストマシンにログを記録するためにsyslogを使用するには?

私のホストマシンは、rsyslogがデフォルトで実行されているubuntu 14.04を実行しているので、私はsyslogを使うと考えました。

docker run -it --log-driver=syslog --log-opt syslog-address=udp://localhost:514 prashant23/ubuntu-java:sample-jdbc-project bash 

と、私はエラーなし容器の中に入った:私はコンテナを実行するには、次のコマンドを使用して何をしたか

。それで全部です?ホストマシンのログがどこにあるかをどのように知ることができますか?私はすべてのことを正しくしましたか?私はsyslogについて考えていません。私のコンテナにもsyslogを設定する必要がありますか?同じことを達成するためのより良いアプローチはありますか?

syslog-addressとして何を使用するべきかわかりません。どこからこのパラメータの値を取得できますか?私はどこかで既定値を読み取っていますudp://localhost:514

答えて

0

ドライバを使用すると、Dockerコンテナは/var/log/syslogファイルにログデータを書き込みます。そのファイルにコンテナのログがあるはずです。

syslog-addressは、外部のsyslogサーバを使用している場合にのみ必要です。これはあなたのケースではないようです。

デフォルトのドライバjson-fileを使用すると、Dockerはこのパスにログファイルを作成します。私は、ホストMacineの上のログを保存するために別のファイルを指定しThanks.Can't

/var/lib/docker/containers/[container-id]/[container-id]-json.log

+0

? '/ var/log/docker/conatiner1.log'や'/var/log/docker/conatiner2.log'と同じですか? –

+0

私の編集をチェックしてください:) – kstromeiraos

+0

編集をありがとう。しかし、これはデフォルトの動作です。 syslogを使用していて、カスタムの場所にログを保存したい場合はどうしたらいいですか?上記のパスは、ロギングドライバ(デフォルト)を使用していない場合にのみ機能しますが、syslogドライバを使用する場合は、上記の場所は存在しません。 syslogを使用してログを取得していますが、各コンテナごとに個別のファイルにしたいので、ログを作成して設定できるようにするファイルのパスと名前が必要です。 –

関連する問題