とドッカー-構成を用いて、例えばによって理解されるフォーマットであるGELF messagesとして容器のstdout
とstderr
出力を得ることが可能ですGraylog/Graylog2およびlogstash。<a href="https://docs.docker.com/reference/logging/overview/">to the official Docker docs</a>よるGELFログドライバ
これは、コマンドラインから手動でコンテナを実行するとうまく動作します。例えば、
docker run --log-driver=gelf --log-opt gelf-address=udp://localhost:12201 busybox echo This is my message.
は12201.
は今、私はdocker-composeと同じログオプションを使用するポートで構成されたUDP入力リスナーを持っているローカルホスト上で実行されている私のGraylog2サーバーにログメッセージを送信しますました、ドキュメントによると、should be possible in principle。記録のために
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 39, in main
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 21, in sys_dispatch
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 27, in dispatch
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 24, in dispatch
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 59, in perform_command
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 495, in up
File "/code/build/docker-compose/out00-PYZ.pyz/compose.project", line 265, in up
File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 369, in execute_convergence_plan
File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 270, in create_container
File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 643, in _get_container_create_options
File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 656, in _get_container_host_config
File "/code/build/docker-compose/out00-PYZ.pyz/docker.utils.types", line 27, in __init__
ValueError: LogConfig.type must be one of (json-file, syslog, none)
、この:しかし、ドキュメントは、任意のログ形式が、json-file
、syslog
とnone
と私は私のdocker-compose.yml
ファイルに
my-container:
container_name: ...
build: ...
ports: ...
log_driver: "gelf"
log_opt:
gelf-address: "udp://localhost:12201"
のようなものが含まれている場合、その後docker-compose up
がで失敗を言及していませんdocker-compose 1.4.0およびdocke 1.8.1、build d12ea79にありました。
明らかに、Dockerとドッカーの作成は、ここでは同じ実装レベルではありません。私はちょうどそれが既に解明されており、Githubのに含まれていることがわかりました。 https://github.com/docker/compose/issues/1869 と https://github.com/docker/docker-py/pull/724を参照してください。
現在のMasterブランチからdocker-composeを再インストールする方法、またはこれを手動で既存のインストールに追加する方法はありますか?コミットがホスト上のどこにでもあるファイルを見つけることができませんでした...
これは 'docker-py == 1.4.0'で修正され、' docker-compose == 1.5.0'リリースで修正されます – dnephin
うん、私もそれを見ました。しかし、 'docker-compose == 1.5.0'は[10/13/2015](https://github.com/docker/compose/wiki/1.5.0-Milestone-Project-Page)でリリースされる予定です。私はおそらく少し待たなければならないでしょう。私はちょうど 'pip install -U https:// github.com/docker/docker-py.git'を介してGithubから最新の' master'をインストールしようとしました。そして 'docker-compose --version'は正しい出力を返します' 1.5 .0-dev'。それでも、すべてのようなコマンドをドッキングウィンドウは、作曲 'up'は' ValueErrorを送出し(「いいえJSONオブジェクトをデコードすることはできなかった」)とValueErrorで失敗ドッキングウィンドウ-作曲:いいえJSONオブジェクトがdecoded'であることができませんでした。 これに関するご意見はありますか? – Dirk
それは、 – dnephin