Docker中容器日志查看與監(jiān)控的5個必備排錯命令
概述
你有沒有遇到過這種情況:
- 訪問不了網站,但容器明明在運行?
- 應用啟動失敗,卻不知道哪里錯了?
- 想看日志,卻無從下手?
Docker 提供了強大的監(jiān)控與日志工具,只要掌握幾個關鍵命令,你就能像偵探一樣,快速找到問題根源
為什么需要監(jiān)控與日志
容器是“黑盒”——你無法像傳統(tǒng)服務器那樣直接登錄查看進程或文件。所以,我們必須依賴:
- 日志(Logs):查看應用輸出、錯誤信息
- 狀態(tài)(Status):了解容器是否運行、退出原因
- 資源使用(CPU/內存):判斷是否資源不足
- 內部運行情況:進入容器調試
下面這 5 個命令,就是你的“排錯工具箱”
5 個必備排錯命令
1.docker ps—— 查看容器狀態(tài)
docker ps
查看正在運行的容器:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc123 nginx:alpine "/entrypoint.sh" 10 minutes ago Up 10 mins 0.0.0.0:80->80/tcp web-server
如果沒看到你的容器,加 -a 查看所有(包括已停止的):
docker ps -a
關注 STATUS 列:
Exited (1):表示容器啟動失敗,退出碼非 0Restarting:可能配置了重啟策略,但應用一直崩潰
2.docker logs—— 查看容器日志(最常用!)
這是最重要的排錯命令,能告訴你應用到底發(fā)生了什么。
docker logs <容器名或ID>
例如:
docker logs web-server
實用選項:
| 選項 | 作用 |
|---|---|
| -f | 實時跟蹤日志(類似 tail -f) |
| --tail 50 | 只看最后 50 行 |
| -t | 顯示時間戳 |
# 實時查看日志 docker logs -f web-server # 查看最近 100 行 docker logs --tail 100 web-server
提示:應用啟動失敗時,第一時間看 logs,通常錯誤信息就在這里
3.docker inspect—— 查看容器詳細信息
當你需要深入了解容器的配置時,用它。
docker inspect <容器名>
它會返回一個巨大的 JSON,包含:
- IP 地址
- 掛載的卷
- 環(huán)境變量
- 網絡配置
- 啟動命令
- 退出原因(如果容器已停止)
快速查看 IP:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web-server
查看退出狀態(tài):
docker inspect -f '{{.State.Error}}' failed-container
4.docker stats—— 實時監(jiān)控資源使用
懷疑容器卡頓、內存不足?用它看 CPU 和內存占用。
docker stats
輸出:
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
web-server 0.5% 10MiB / 1.9GiB 0.5% 1.2kB / 0B 0B / 0B
db 2.1% 150MiB / 1GiB 15.0% ...
如果某個容器 MEM % 接近 100%,很可能被系統(tǒng) OOM Kill(內存溢出終止)。
5.docker exec—— 進入容器內部調試
有時候你需要“進到容器里”看看文件、運行命令
# 進入容器的 shell docker exec -it web-server sh
常見用途:
- 檢查配置文件是否存在
- 測試網絡連通性(
ping,curl) - 查看目錄內容(
ls /app) - 手動運行應用命令測試
注意:生產環(huán)境慎用,避免誤操作
實戰(zhàn)排錯流程
當你的應用“打不開”時,按這個順序排查:
docker ps -a→ 看容器是否在運行,退出碼是什么docker logs <容器名>→ 看是否有報錯(如端口沖突、依賴缺失)docker inspect <容器名>→ 檢查端口映射、環(huán)境變量是否正確docker stats→ 看是否資源耗盡docker exec -it <容器名> sh→ 進入容器手動測試
大多數(shù)問題,都能通過這 5 步解決
Docker Compose 怎么排錯
如果你用 docker-compose.yml,命令類似:
| 原命令 | Compose 版本 |
|---|---|
| docker logs web | docker compose logs web |
| docker exec web sh | docker compose exec web sh |
| docker ps | docker compose ps |
在項目目錄下運行,自動識別 docker-compose.yml
總結
容器出問題不可怕,關鍵是知道怎么查。記住這 5 個核心命令:
docker ps—— 看狀態(tài)docker logs—— 看日志(最重要!)docker inspect—— 看細節(jié)docker stats—— 看資源docker exec—— 進去調試
掌握它們,你就能快速定位 90% 的容器問題,不再“一臉懵”
到此這篇關于Docker中容器日志查看與監(jiān)控的5個必備排錯命令的文章就介紹到這了,更多相關Docker容器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
docker拉取clickhouse鏡像的方法實現(xiàn)
本文主要介紹了docker拉取clickhouse鏡像的方法實現(xiàn),解決從DockerHub拉取鏡像時的網絡連接問題,具有一定的參考價值,感興趣的可以了解一下2025-03-03
解決docker鏡像(centos系統(tǒng))中無sudo命令問題
這篇文章主要介紹了解決docker鏡像(centos系統(tǒng))中無sudo命令問題,具有很好的參考價值,希望對大家有所幫助,2023-11-11
解決docker容器重啟之后/etc下某些配置文件被重置的問題
這篇文章主要介紹了解決docker容器重啟之后/etc下某些配置文件被重置的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03

