插件窝 干货文章 docker的系统日志在哪

docker的系统日志在哪

Docker 日志 容器 log 169    来源:    2025-05-03

Docker 的系统日志存储位置取决于你使用的操作系统和日志驱动配置。以下是不同场景下的查找方法:


1. Docker 守护进程日志(主服务日志)

Linux 系统

  • Systemd 系统(大多数现代 Linux 发行版):

    journalctl -u docker.service --no-pager -n 50  # 查看最近50行日志
    

    或持久化到文件:

    journalctl -u docker.service > docker.log
    
  • 非 Systemd 系统(如旧版 Debian/Ubuntu):

    cat /var/log/upstart/docker.log
    

Windows 系统

powershell Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddDays(-1) | Format-Table -AutoSize 或通过 Windows 事件查看器手动查看 应用程序 日志,筛选来源为 Docker

macOS(Docker Desktop)

Docker Desktop 的日志通过 GUI 查看: - 点击菜单栏 Docker 图标 → TroubleshootView logs


2. 容器日志(单个容器的输出日志)

默认情况下,容器日志存储在宿主机的 json-file 中,路径为:

/var/lib/docker/containers/<容器ID>/<容器ID>-json.log

查看方法:

# 1. 获取容器ID
docker ps -a

# 2. 直接查看日志(无需手动找路径)
docker logs <容器ID>

# 3. 跟踪实时日志
docker logs -f <容器ID>

自定义日志驱动

如果容器使用了其他日志驱动(如 syslogjournald),需根据驱动类型查找: - Syslog:查看 /var/log/syslog/var/log/messages。 - Journald:使用 journalctl -u docker CONTAINER_NAME=<容器名>


3. Docker 事件日志(实时操作记录)

记录所有 Docker 操作(如启动/停止容器):

docker events --since '2024-01-01'

4. 关键目录总结

日志类型 路径(Linux)
守护进程日志 /var/log/docker.log(部分系统)
容器日志(默认) /var/lib/docker/containers/*/*.log
卷/网络操作日志 Docker 守护进程日志中记录

常见问题排查

  1. 日志太大导致磁盘占满
    限制容器日志大小:

    docker run --log-opt max-size=10m --log-opt max-file=3 nginx
    
  2. 修改默认日志驱动
    编辑 /etc/docker/daemon.json

    {
     "log-driver": "json-file",
     "log-opts": {"max-size": "10m", "max-file": "3"}
    }
    

    重启 Docker:systemctl restart docker


通过以上方法,你可以快速定位 Docker 相关的日志信息。如果需要进一步分析,可以结合工具如 grepawk 或日志聚合系统(ELK/Splunk)。