在Debian系统下管理Docker日志可以通过多种方法进行,以下是一些常用的技巧和最佳实践:
docker logs
命令查看容器的日志。例如,查看容器 my-container
的最后10条日志:docker logs -f --tail 10 my-container
-f
参数表示实时跟踪日志输出,--tail 10
表示获取最后10条日志。logrotate
工具进行日志轮转。logrotate
:/var/lib/docker/containers/[container-id]/[container-id]-json.log {
daily
rotate 7
compress
missingok
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压缩旧的日志文件。logrotate
:{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
上述配置表示每个日志文件最大为10MB,并保留最多3个旧日志文件。修改配置后,重启Docker守护进程使配置生效:sudo systemctl restart docker
journalctl
是systemd日志系统的命令行工具,可以用来查看Docker容器和服务的日志。journalctl -u docker.service
journalctl -u docker.service --since "2023-04-01" --until "2023-04-30" --follow -o cat | grep <container_id_or_name>
docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest
浏览器访问 http://ip:8080
查看页面。docker system prune
命令清理未使用的容器、网络、图像和构建缓存。此外,也可以手动删除Docker日志文件来释放空间。docker system prune -f
通过上述方法,你可以有效地管理和分析在Debian上运行的Docker容器的日志,确保系统的性能和稳定性。