在Debian環境下管理Docker日志可以通過以下幾種方法進行:
使用 docker logs
命令查看容器的日志。例如,查看容器 my-container
的最后10條日志:
docker logs -f --tail 10 my-container
-f
參數表示實時跟蹤日志輸出,--tail 10
表示獲取最后10條日志。
為了避免日志文件占用過多磁盤空間,可以使用 logrotate
工具進行日志輪轉。
配置 logrotate
:編輯 /etc/logrotate.d/docker
文件(如果不存在,可以創建):
/var/lib/docker/containers/[container-id]/[container-id]-json.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root root
postrotate
/usr/bin/kill -USR1 $(cat /var/lib/docker/containers/[container-id]/[container-id]-json.log.pid)
endscript
}
上述配置表示每天輪轉日志文件,保留最近7天的日志文件,并使用gzip壓縮舊的日志文件。
在Docker守護進程中配置 logrotate
:可以在 /etc/docker/daemon.json
文件中配置 logrotate
選項:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
上述配置表示每個日志文件最大為10MB,并保留最多3個舊日志文件。修改配置后,重啟Docker守護進程使配置生效:
sudo systemctl restart docker
Systemd Journal 是Ubuntu中的日志系統,可以收集和存儲系統日志。通過 journalctl
命令可以查看和操作日志。
實時查看日志:
journalctl -f
-f
參數表示實時跟蹤日志輸出。
通過上述方法,可以有效地管理和分析Debian系統下的Docker日志,提高系統的可管理性和穩定性。