在Debian系统上管理Docker日志有多种方法,以下是一些常用的技巧和工具:
journalctl
命令journalctl
是 systemd 日志系统的命令行工具,可以用来查看 Docker 容器和服务的日志。
查看所有 Docker 容器的日志:
journalctl -u docker.service
查看特定容器的日志:
docker ps -a
journalctl
查看特定容器的日志:journalctl -u docker.service --since "2023-04-01" --until "2023-04-30" --follow -o cat | grep <container_id_or_name>
docker logs
命令docker logs
是 Docker 自带的命令,可以直接查看容器的日志。
查看所有容器的日志:
docker logs $(docker ps -aq)
查看特定容器的日志:
docker logs <container_id_or_name>
实时查看容器日志:
docker logs -f <container_id_or_name>
将日志输出到文件:
docker logs -f <container_id_or_name> > logs.txt
查看最近 30 分钟的日志:
docker logs --since 30m <container_id_or_name>
Dozzle 是一个轻量级的基于 Web 的界面来监控 Docker 日志,不存储任何日志文件,仅用于实时监视容器日志。
安装 Dozzle:
docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest
浏览器访问:http://<服务器 IP>:8080 查看容器日志。
可以使用 ELK Stack(Elasticsearch, Logstash, Kibana)、Splunk、Graylog 等第三方工具来收集和分析 Docker 容器的日志,这些工具提供了更高级的日志管理和分析功能。
为了避免日志文件过大占用过多磁盘空间,可以通过配置日志轮换(log rotation)来限制日志文件的大小。
编辑 Docker 的配置文件 /etc/docker/daemon.json
(如果文件不存在,则需要手动创建)。例如:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
重新启动 Docker 服务以使设置生效:
sudo systemctl restart docker
验证配置:
docker inspect --format '{{.HostConfig.LogConfig}}' <container_id>