を使用していくつかのコンテナを実行していdocker-compose
ます。コマンドでアプリケーションログを表示できますdocker-compose logs
。しかし、例えばどこかにそれを送るために生のログファイルにアクセスしたいですか?どこにありますか?それは各コンテナー(コンテナー内?)ごとの個別のログだと思いますが、どこにありますか?
を使用していくつかのコンテナを実行していdocker-compose
ます。コマンドでアプリケーションログを表示できますdocker-compose logs
。しかし、例えばどこかにそれを送るために生のログファイルにアクセスしたいですか?どこにありますか?それは各コンテナー(コンテナー内?)ごとの個別のログだと思いますが、どこにありますか?
回答:
コンテナのログは次の場所にあります。
/var/lib/docker/containers/<container id>/<container id>-json.log
(jsonであるデフォルトのログ形式を使用する場合)
docker ps
docker ps
、利用可能なすべてのコンテナとそのIDが取得されます。目的のコンテナーのIDをコピーし、次に/var/lib/docker/containers/
run からコピーしますls | grep <paste the copied docker ID>
。次に、その
cd /var/lib/docker/containers/
-bash:cd:/ var / lib / docker / containers /:権限が拒否されました sudo cd /var/lib/docker/containers/
sudo:cd:コマンドが見つかりません
docker ps --no-trunc
ID全体を見るためにやらなければなりませんでした
docker inspect
各コンテナで、ログの場所を確認できます。
docker inspect --format='{{.LogPath}}' $INSTANCE_ID
また、ログがそれらの集合サイズを管理する場所を見つけようとしている場合、またはログ自体のパラメーターを調整しようとしている場合は、次のことがわかります。
ログ用に予約されている容量を修正する
これは、ログ履歴をクリアする機能のリクエストから取得されます(問題1083))。
Docker 1.8およびdocker-compose 1.4には、docker composeログドライバーとlog-opt max-size を使用してログサイズを制限する方法がすでに存在します。
mycontainer:
...
log_driver: "json-file"
log_opt:
# limit logs to 2MB (20 rotations of 100K each)
max-size: "100k"
max-file: "20"
バージョン '2'のdocker composeファイルでは、構文が少し変更されました:
version: '2'
...
mycontainer:
...
logging:
#limit logs to 200MB (4rotations of 50M each)
driver: "json-file"
options:
max-size: "50m"
max-file: "4"
(どちらの構文でも、数字は引用符で囲まれた文字列として表されることに注意してください)
docker-compose logs
終了しない可能性のある問題
logs
コンテナーが既に停止している場合、コマンドが終了しません各コンテナのログが使用している容量を確認するには、次のコードを使用します。
docker ps -qa | xargs docker inspect --format='{{.LogPath}}' | xargs ls -hl
(sudo
前に必要になる場合がありますls
)。
docker ps -qa | xargs docker inspect --format='{{.LogPath}}' | xargs sudo du -hl
004279dd2985037950beeba7e6fe45c10354476d3b82afb68e72dd612b03a8ff
。特定のコンテナを探すためにどのフォルダを確認するのですか?