Chưa tìm thấy cách tích hợp sẵn để đưa số liệu thống kê vùng chứa vào nhật ký của vùng chứa, nhưng một phần giải pháp của chúng tôi có thể giúp bạn thực hiện được một phần:
Chúng tôi có một công việc CRON trên máy chủ Docker thực thi tập lệnh này mỗi phút, dẫn đến nhật ký theo trình tự thời gian đảo ngược* về số liệu thống kê của vùng chứa:
#!/bin/bash
# thống kê.sh
MAX_LINES=1440
CONTAINER_NAME=my_container
LOG=~/${CONTAINER_NAME}.stats.log
# docker stats-heading + stats to new log
docker stats --no-stream | grep -e 'CONTAINER' -e ${CONTAINER_NAME} | ts '[%Y-%m-%d %H:%M]' > ${LOG}_
# nối các dòng từ nhật ký đang chạy sang nhật ký mới
# (pre-touch trong trường hợp nó chưa tồn tại)
chạm vào ${LOG}
grep ${CONTAINER_NAME} ${LOG} | đầu -${MAX_LINES} >> ${LOG}_
# thay nhật ký đang chạy bằng nhật ký mới
mv ${LOG}_ ${LOG}
Chạy mỗi phút và kết thúc sau 1440 dòng, điều này cung cấp cho chúng tôi lịch sử 24 giờ về các dấu hiệu sinh tồn của vùng chứa.
Đối với nhu cầu của bạn (bao gồm cả số liệu thống kê trong nhật ký vùng chứa), tệp nhật ký được tạo trên Máy chủ chỉ có thể chứa dòng thống kê đơn/hiện tại, nhưng được ghi vào một vị trí mà vùng chứa có thể đọc từ đó và công việc CRON tương ứng trong vùng chứa sẽ lặp lại nó khuyên giải
* thứ tự đảo ngược là tác dụng phụ của việc muốn bao gồm tiêu đề thống kê Docker nhưng với tập lệnh đơn giản hơn và I/O tệp ít hơn ... mọi đề xuất script-fu để giảm I/O tệp hơn nữa đều được hoan nghênh