溫馨提示×

Debian系統下Docker日志如何查看

小樊
37
2025-10-12 14:38:15
欄目: 智能運維

Debian系統下查看Docker日志的常用方法

1. 使用docker logs命令(基礎且最常用)

docker logs是Docker原生提供的日志查看工具,適用于大多數場景,支持多種選項靈活控制日志輸出。

  • 查看指定容器日志:通過容器ID或名稱獲取其標準輸出(stdout)和標準錯誤(stderr)日志。
    docker logs <容器ID或名稱>
    
  • 實時查看日志:使用-f--follow選項,類似tail -f,持續跟蹤容器最新日志輸出。
    docker logs -f <容器ID或名稱>
    
  • 限制日志行數:用--tail指定顯示的日志條數(默認顯示全部),常用于快速查看最新日志。
    docker logs --tail 100 <容器ID或名稱>  # 顯示最后100條日志
    
  • 查看指定時間段日志:通過--since(開始時間)和--until(結束時間)篩選日志,支持相對時間(如10m表示10分鐘前)和絕對時間(如2025-01-01T12:00:00Z)。
    docker logs --since 30m <容器ID或名稱>          # 最近30分鐘的日志
    docker logs --since "2025-01-01T00:00:00Z" --until "2025-01-01T23:59:59Z" <容器ID或名稱>  # 指定日期范圍的日志
    
  • 輸出到文件:結合重定向符號>,將日志保存到本地文件,便于后續分析。
    docker logs -f <容器ID或名稱> > container_logs.txt
    

2. 使用journalctl命令(系統級日志查看)

若Docker服務通過systemd管理(默認情況),可通過journalctl查看容器日志,尤其適合查看系統級日志或容器崩潰時的內核日志。

  • 查看所有Docker容器日志
    journalctl -u docker.service
    
  • 查看特定容器日志:先通過docker ps獲取容器名稱,再用-t選項過濾該容器的日志。
    journalctl -u docker.service -t <容器名稱> -f  # 實時查看特定容器日志
    
  • 結合時間篩選journalctl支持--since--until選項,用法與docker logs類似。
    journalctl -u docker.service --since "2025-01-01T00:00:00Z" --until "2025-01-01T23:59:59Z"
    

3. 可視化工具(簡化操作,適合日常監控)

若需要更直觀的日志查看體驗,可使用以下可視化工具:

  • Dozzle:輕量級Web界面,實時展示容器日志,無需額外存儲。
    docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 9999:8080 amir20/dozzle:latest
    
    訪問http://<服務器IP>:9999,即可查看所有容器的實時日志。
  • Portainer:功能全面的容器管理工具,支持日志查看、過濾和導出。
    docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /home/user/data:/data portainer/portainer-ce
    
    訪問http://<服務器IP>:9000,登錄后選擇容器,點擊“Logs”選項卡即可查看。

4. 日志文件直接查看(默認存儲路徑)

Docker默認使用json-file驅動,容器日志以JSON格式存儲在宿主機上,可直接查看。

  • 日志文件路徑:通過docker inspect獲取容器日志文件的絕對路徑。
    docker inspect --format='{{.LogPath}}' <容器ID或名稱>
    
    示例輸出:/var/lib/docker/containers/<容器ID>/<容器ID>-json.log
  • 查看日志文件:使用cat、lesstail命令查看日志文件內容。
    cat /var/lib/docker/containers/<容器ID>/<容器ID>-json.log
    tail -f /var/lib/docker/containers/<容器ID>/<容器ID>-json.log  # 實時查看
    

注意事項

  • 日志輪轉配置:為避免日志文件過大占用磁盤空間,可通過修改/etc/docker/daemon.json配置日志輪轉(默認未開啟)。
    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",  // 單個日志文件最大10MB
        "max-file": "3"     // 最多保留3個文件(當前+2個輪轉)
      }
    }
    
    修改后重啟Docker服務生效:sudo systemctl restart docker。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女