2015-10-08 26 views
29

Tôi đang chạy nhiều thùng chứa bằng cách sử dụng docker-compose. Tôi có thể xem nhật ký ứng dụng với lệnh docker-compose logs. Tuy nhiên, tôi muốn truy cập tệp nhật ký thô để gửi tệp ở đâu đó chẳng hạn? Nó nằm ở đâu? Tôi đoán đó là nhật ký riêng biệt cho mỗi container (bên trong container?) Nhưng tôi có thể tìm thấy nó ở đâu?Tệp nhật ký ở đâu có nhật ký từ vùng chứa?

Trả lời

56

bản ghi của một container có thể được tìm thấy trong:

/var/lib/docker/containers/<container id>/<container id>-json.log 

(nếu bạn sử dụng hình thức đăng nhập mặc định mà tại đó là json)

36

Bạn có thể docker inspect mỗi container để xem nơi các bản ghi của họ là:

docker inspect --format='{{.LogPath}}' $INSTANCE_ID 

Quan tâm:

Docker 1.8 và docker- soạn 1,4 có được đã tồn tại một phương pháp để hạn chế kích thước log sử dụng docker compose log driver và đăng nhập-opt max-size:

log_driver: "json-file" 
log_opt: 
    max-size: "100k" 
    max-file: "20" 
  • issue 1866: các bản ghi không thoát nếu container đã dừng lại
0

Để xem trực tiếp logfile trong vòng chưa, tôi sử dụng:

docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less 

chạy như ./viewLogs.sh CONTAINERNAME

Các vấn đề liên quan