Docker中容器日志查看與監(jiān)控的5個必備排錯命令
概述
你有沒有遇到過這種情況:
- 訪問不了網(wǎng)站,但容器明明在運行?
- 應用啟動失敗,卻不知道哪里錯了?
- 想看日志,卻無從下手?
Docker 提供了強大的監(jiān)控與日志工具,只要掌握幾個關鍵命令,你就能像偵探一樣,快速找到問題根源
為什么需要監(jiān)控與日志
容器是“黑盒”——你無法像傳統(tǒng)服務器那樣直接登錄查看進程或文件。所以,我們必須依賴:
- 日志(Logs):查看應用輸出、錯誤信息
- 狀態(tài)(Status):了解容器是否運行、退出原因
- 資源使用(CPU/內(nèi)存):判斷是否資源不足
- 內(nèi)部運行情況:進入容器調(diào)試
下面這 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—— 查看容器日志(最常用?。?/h3>
這是最重要的排錯命令,能告訴你應用到底發(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)境變量
- 網(wǎng)絡配置
- 啟動命令
- 退出原因(如果容器已停止)
快速查看 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)控資源使用
懷疑容器卡頓、內(nèi)存不足?用它看 CPU 和內(nèi)存占用。
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(內(nèi)存溢出終止)。
5.docker exec—— 進入容器內(nèi)部調(diào)試
有時候你需要“進到容器里”看看文件、運行命令
# 進入容器的 shell docker exec -it web-server sh
常見用途:
- 檢查配置文件是否存在
- 測試網(wǎng)絡連通性(
ping,curl) - 查看目錄內(nèi)容(
ls /app) - 手動運行應用命令測試
注意:生產(chǎn)環(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
總結(jié)
容器出問題不可怕,關鍵是知道怎么查。記住這 5 個核心命令:
docker ps—— 看狀態(tài)docker logs—— 看日志(最重要?。?/li>docker inspect—— 看細節(jié)docker stats—— 看資源docker exec—— 進去調(diào)試
掌握它們,你就能快速定位 90% 的容器問題,不再“一臉懵”
到此這篇關于Docker中容器日志查看與監(jiān)控的5個必備排錯命令的文章就介紹到這了,更多相關Docker容器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
dockerfile構建任意java鏡像的實現(xiàn)示例
本文主要介紹了dockerfile構建任意java鏡像的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-09-09
docker中使用mongodb數(shù)據(jù)庫詳解(在局域網(wǎng)訪問)
這篇文章主要給大家介紹了在docker中使用mongodb數(shù)據(jù)庫,在局域網(wǎng)訪問的相關資料,文中將步驟介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-06-06
docker+jenkins+gitee配置持續(xù)集成部署方式
這篇文章主要介紹了docker+jenkins+gitee配置持續(xù)集成部署方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
一次wsl2+docker無法運行的經(jīng)歷實戰(zhàn)記錄
這篇文章主要介紹了在使用WSL2和Docker?Desktop時遇到的錯誤,并提供了解決方案,錯誤可能是由于自定義WSL內(nèi)核導致的,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-05-05
使用Docker搭建MySQL數(shù)據(jù)庫服務的方法詳解
在現(xiàn)代應用程序開發(fā)中,使用數(shù)據(jù)庫是必不可少的,文將介紹如何使用Docker搭建MySQL數(shù)據(jù)庫服務,讓你在本地環(huán)境中快速部署一個MySQL實例,感興趣的可以了解下2024-03-03

