Docker日誌是用於記錄運行Docker的容器信息的重要工具。 當您監視容器執行時,日誌是不可或缺的。Docker提供了許多選項來查看日誌,從而有助於開發,調試和故障排除。本篇文章將介紹Docker查看日誌的不同方法,以及如何使用這些方法來監視和診斷容器。
一、Docker查看日誌的命令
在Linux操作系統中,使用容器時可以通過docker logs命令查看容器運行日誌。這個命令簡潔易用,是一個基本且常用的查看Docker日誌的方式。
docker logs [OPTIONS] CONTAINER
該命令的語法是docker logs加上相應的選項和容器ID或名稱,例如:
docker logs -f CONTAINER
該命令將實時輸出容器的日誌。如果您需要在容器運行時查看日誌,則可以使用-f選項。
二、查看Docker鏡像運行日誌
Docker容器日誌默認情況下被發送到標準輸出(STDOUT)和標準錯誤(STDERR)設備。 使用docker logs命令可以重定向這些輸出,以便更好地監視和跟蹤它們。在以下示例中,我們展示了如何查看一個Docker鏡像的運行日誌。
首先,使用docker run命令在容器中運行鏡像:
docker run -d --name mynginx nginx
接下來,查看容器運行日誌:
docker logs mynginx
輸出:
172.17.0.1 - - [16/Nov/2021:01:29:22 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15" "-" 172.17.0.1 - - [16/Nov/2021:01:30:02 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15" "-" 172.17.0.1 - - [16/Nov/2021:01:30:03 +0000] "GET /favicon.ico HTTP/1.1" 200 612 "http://localhost/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15" "-"
三、Docker查看日誌並保存
通過運行docker logs命令,您可以將Docker容器的日誌發送到標準輸出。如果我們要將Docker容器的日誌存儲在文件中,我們可以使用以下命令:
docker logs CONTAINER > /path/to/logfile.log
此命令將容器日誌輸出到指定路徑的文件中。
您還可以使用tee命令將容器日誌同時輸出到STDOUT和文件中:
docker logs CONTAINER | tee /path/to/logfile.log
四、Docker查看日誌路徑
容器的日誌路徑默認為/var/lib/docker/containers//-json.log。 若要找到容器的日誌路徑,請使用以下命令:
docker inspect --format='{{.LogPath}}' CONTAINER
輸出:
/var/lib/docker/containers/a5e1a0f3cd8a1ebfc2866300c4bf7ea91e9a654ef55b9d607105bbe3d6444f4a/a5e1a0f3cd8a1ebfc2866300c4bf7ea91e9a654ef55b9d607105bbe3d6444f4a-json.log
五、Docker查看日誌文件命令
在Docker中,我們可以使用less命令查看指定的日誌文件,例如:
docker exec -it CONTAINER_ID /bin/sh
less /var/log/messages
該命令會打開容器的shell,並查看一個名為messages的日誌文件。
六、Docker查看日誌目錄
要在容器中列出具有多個日誌文件的目錄,請運行以下命令:
docker exec CONTAINER ls /var/log
該命令列出了容器中/var/log目錄的內容。
七、Docker查看日誌的工具
有多種工具可以用於查看Docker日誌文件,如docker-compose logs以及第三方工具如Logspout、Fluentd、Elasticsearch等。
Logspout是一種工具,可以將Docker容器的日誌集中到一個地方,並將它們轉發到一個外部的日誌聚合器(如Logstash或Fluentd)。Fluentd是一款支持自定義插件的開源數據收集器,它可收集、傳輸和存儲日誌、事件和多種其他數據。
如果您使用Elasticsearch作為日誌聚合工具,可以使用Kibana進行可視化查詢和分析。
八、Docker查看日誌顯示行
您可以使用以下命令顯示日誌文件中特定行:
cat filename.txt | sed -n '1,10p'
輸出前10行的日誌文件內容。
如果您要查找特定錯誤或事件的記錄,請使用以下命令:
docker logs CONTAINER | grep "error"
將輸出任何包含“error”字符的行。
九、Docker查看日誌怎麼退出
當您在Docker日誌中查看完畢並想要退出時,您可以使用CTRL+C退出docker logs命令。
十、Docker查看SVN日誌
Docker容器通常使用版本控制工具來存儲代碼和項目。 如果您的代碼存儲在Subversion(SVN)版本控制系統中,則可以使用以下命令從Docker容器中查看SVN日誌:
docker exec CONTAINER svn log [-v] [-r arg1:arg2] URL
其中-v是可選的,-r arg1:arg2用於範圍版本。如果您的訪問僅需查詢SVN式URL,則可以省略-r選項。
十一、總結
通過本文,我們探討了Docker日誌的不同方法和工具,以及如何使用它們來監視和調試容器,包括了:使用docker logs命令查看日誌;查看Docker鏡像運行日誌;Docker查看日誌並保存;查看Docker中日誌文件的路徑和位置;查看Docker中日誌文件;Docker查看日誌目錄;Docker查看日誌工具;Docker查看日誌的顯示行數;Docker查看日誌如何退出;以及查看SVN操作的Docker日誌。這些方法和工具將幫助您更好地監視和診斷Docker容器。
原創文章,作者:TQKZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133292.html