最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker中進行線上問題排查常用的19個命令

 更新時間:2025年05月27日 08:05:42   作者:風象南  
這篇文章主要為大家詳細介紹了19個Docker線上問題排查的常用命令和工具,掌握這些命令和工具都能顯著提升你的問題排查效率,快跟隨小編一起學習一下吧

在容器化應(yīng)用的生產(chǎn)環(huán)境中,當問題出現(xiàn)時,快速準確的診斷和解決能力直接關(guān)系到業(yè)務(wù)的可用性和用戶體驗。

本文總結(jié)了19個Docker線上問題排查的常用命令和工具,掌握這些命令和工具都能顯著提升你的問題排查效率。

基礎(chǔ)排查命令

1. docker ps - 容器狀態(tài)檢查

列出所有運行中或已停止的容器,這是排查問題的第一步。

實際應(yīng)用

# 查看所有運行中的容器
docker ps

# 查看所有容器(包括已停止的)
docker ps -a

# 顯示最近創(chuàng)建的容器
docker ps -n 5

# 只顯示容器ID
docker ps -q

# 自定義輸出格式
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"

使用技巧

設(shè)置別名加速日常操作:

# 在~/.bashrc或~/.zshrc中添加
alias dps='docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"'

2. docker logs - 日志分析利器

查看容器日志輸出,是排查應(yīng)用程序內(nèi)部問題的基本工具。

實際應(yīng)用

# 查看容器日志
docker logs container_id_or_name

# 實時查看最新日志
docker logs -f container_id_or_name

# 查看最近100行日志
docker logs --tail 100 container_id_or_name

# 顯示時間戳
docker logs -t container_id_or_name

# 查看特定時間段的日志
docker logs --since 2023-10-25T10:00:00 --until 2023-10-25T11:00:00 container_id_or_name

使用技巧

結(jié)合grep提取關(guān)鍵信息:

# 提取錯誤信息并顯示上下文
docker logs container_id_or_name 2>&1 | grep -A 3 -B 3 "ERROR"

# 查找特定異常
docker logs container_id_or_name | grep "OutOfMemoryError"

3. docker inspect - 容器詳情探測器

查看容器、鏡像或網(wǎng)絡(luò)的底層詳細信息,是深入了解容器配置的關(guān)鍵工具。

實際應(yīng)用

# 查看容器的詳細配置
docker inspect container_id_or_name

# 提取特定信息(IP地址)
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_id_or_name

# 查看容器的環(huán)境變量
docker inspect --format='{{.Config.Env}}' container_id_or_name

# 查看容器的掛載點
docker inspect --format='{{range .Mounts}}{{.Source}} -> {{.Destination}}{{end}}' container_id_or_name

# 檢查容器的重啟策略
docker inspect --format='{{.HostConfig.RestartPolicy}}' container_id_or_name

使用技巧

使用jq進行高級過濾:

# 安裝jq: sudo apt install jq 或 brew install jq
docker inspect container_id_or_name | jq '.[0].State.Health'

4. docker stats - 資源監(jiān)控實時儀表盤

提供容器資源使用的實時視圖,包括CPU、內(nèi)存、網(wǎng)絡(luò)和磁盤I/O。

實際應(yīng)用

# 查看所有容器的資源使用情況
docker stats

# 查看特定容器的資源使用
docker stats container_id_or_name

# 自定義格式輸出
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"

# 一次性輸出當前狀態(tài)(不持續(xù)刷新)
docker stats --no-stream

使用技巧

結(jié)合watch命令定期監(jiān)控:

# 每5秒更新一次所有容器的資源狀態(tài)
watch -n 5 'docker stats --no-stream'

5. docker exec - 容器內(nèi)部操作工具

在運行中的容器內(nèi)執(zhí)行命令,是深入容器內(nèi)部排查問題的必備工具。

實際應(yīng)用

# 在容器內(nèi)執(zhí)行命令
docker exec container_id_or_name ls -la /app

# 進入容器的交互式shell
docker exec -it container_id_or_name /bin/bash

# 以特定用戶身份執(zhí)行命令
docker exec -u root container_id_or_name cat /etc/passwd

# 在特定工作目錄執(zhí)行命令
docker exec -w /app container_id_or_name pwd

使用技巧

對于精簡鏡像,可能需要先安裝調(diào)試工具:

# 在Alpine基礎(chǔ)鏡像中安裝常用工具
docker exec -it container_id_or_name /bin/sh
apk add --no-cache curl procps net-tools busybox-extras

高級排查命令

6. docker top - 容器進程查看器

顯示容器內(nèi)運行的進程,類似于主機上的top命令。

實際應(yīng)用

# 查看容器內(nèi)的進程
docker top container_id_or_name

# 自定義格式(使用ps的格式選項)
docker top container_id_or_name aux

使用技巧

結(jié)合watch命令監(jiān)控進程變化:

# 每2秒刷新一次進程列表
watch -n 2 "docker top container_id_or_name"

7. docker diff - 文件系統(tǒng)變更檢測器

顯示容器文件系統(tǒng)相對于初始鏡像的變化,對查找配置修改或異常文件非常有用。

實際應(yīng)用

# 查看容器文件系統(tǒng)的變更
docker diff container_id_or_name

輸出格式說明:

  • • A: 文件或目錄被添加
  • • D: 文件或目錄被刪除
  • • C: 文件或目錄被修改

使用技巧

結(jié)合grep過濾特定目錄的變更:

# 只查看/etc目錄下的變更
docker diff container_id_or_name | grep "^. /etc"

8. docker events - 事件歷史記錄器

實時顯示Docker守護進程中發(fā)生的事件,如容器的創(chuàng)建、啟動、停止等。

實際應(yīng)用

# 實時查看Docker事件
docker events

# 查看過去的事件
docker events --since '2023-10-25'

# 過濾特定類型的事件
docker events --filter 'type=container' --filter 'event=stop'

# 格式化輸出
docker events --format '{{.Time}} {{.Type}} {{.Action}}'

使用技巧

在另一個終端執(zhí)行操作,同時觀察events輸出,可以了解Docker內(nèi)部發(fā)生了什么:

# 終端1
docker events

# 終端2
docker start my-container
docker stop my-container

9. docker network inspect - 網(wǎng)絡(luò)配置分析工具

檢查Docker網(wǎng)絡(luò)配置,對排查容器間通信問題至關(guān)重要。

實際應(yīng)用

# 列出所有網(wǎng)絡(luò)
docker network ls

# 檢查特定網(wǎng)絡(luò)
docker network inspect network_name

# 查看網(wǎng)絡(luò)中所有容器
docker network inspect network_name --format='{{range .Containers}}{{.Name}} {{.IPv4Address}}{{end}}'

# 連接容器到網(wǎng)絡(luò)
docker network connect network_name container_id_or_name

# 斷開容器與網(wǎng)絡(luò)的連接
docker network disconnect network_name container_id_or_name

使用技巧

使用專用的網(wǎng)絡(luò)調(diào)試容器:

# 啟動一個網(wǎng)絡(luò)工具容器并連接到目標網(wǎng)絡(luò)
docker run --rm -it --network=target_network nicolaka/netshoot

# 在容器中使用各種網(wǎng)絡(luò)工具
ping container_name
dig container_name
tcpdump -i eth0

10. docker-compose logs - 多容器日志聚合器

同時查看docker-compose管理的多個相關(guān)容器的日志,對微服務(wù)架構(gòu)排障特別有用。

實際應(yīng)用

# 查看所有服務(wù)的日志
docker-compose logs

# 查看特定服務(wù)的日志
docker-compose logs service_name

# 持續(xù)查看日志
docker-compose logs -f

# 查看最近的日志
docker-compose logs --tail=100

# 顯示時間戳
docker-compose logs -t

使用技巧

在復雜系統(tǒng)中跟蹤請求:

# 使用請求ID或會話ID跟蹤請求流程
docker-compose logs | grep "request-xyz-123"

11. docker history - 鏡像構(gòu)建分析工具

顯示鏡像的構(gòu)建歷史,幫助了解鏡像的構(gòu)成和潛在問題。

實際應(yīng)用

# 查看鏡像的構(gòu)建歷史
docker history image_name:tag

# 顯示完整的命令(不截斷)
docker history --no-trunc image_name:tag

# 格式化輸出
docker history --format "{{.CreatedBy}}: {{.Size}}" image_name:tag

使用技巧

分析鏡像大小問題:

# 查找最大的層
docker history image_name:tag --format "{{.Size}}: {{.CreatedBy}}" | sort -hr | head -5

12. docker system df - 磁盤使用分析器

顯示Docker使用的磁盤空間情況,包括鏡像、容器和卷的空間占用。

實際應(yīng)用

# 查看Docker磁盤使用概況
docker system df

# 顯示詳細信息,包括未使用的對象
docker system df -v

使用技巧

定期監(jiān)控磁盤使用情況:

# 創(chuàng)建定時任務(wù)監(jiān)控Docker磁盤使用
echo "0 9 * * * docker system df -v | mail -s 'Docker Disk Usage Report' admin@example.com" | crontab

13. docker system prune - 資源清理工具

清理未使用的Docker資源,包括停止的容器、未使用的網(wǎng)絡(luò)、懸空鏡像和構(gòu)建緩存。

實際應(yīng)用

# 基本清理
docker system prune

# 清理包括未使用的鏡像
docker system prune -a

# 清理包括未使用的數(shù)據(jù)卷
docker system prune -a --volumes

# 強制清理(不提示)
docker system prune -f

使用技巧

在CI/CD流水線中自動清理:

# Jenkins流水線中的清理步驟
stage('Cleanup') {
    steps {
        sh 'docker system prune -f'
    }
}

第三方排查工具

14. ctop - 容器性能監(jiān)控可視化工具

提供類似top命令的交互式界面,實時顯示容器的CPU、內(nèi)存、網(wǎng)絡(luò)等資源使用情況。

安裝方法

# Linux
sudo wget https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -O /usr/local/bin/ctop
sudo chmod +x /usr/local/bin/ctop

# Mac
brew install ctop

實際應(yīng)用

# 啟動ctop
ctop

# 按CPU使用率排序(在界面按下's'鍵,選擇CPU)

使用技巧

ctop界面的快捷鍵:

  • • f: 過濾容器
  • • s: 更改排序
  • • r: 反轉(zhuǎn)排序
  • • o: 切換顯示選項
  • • l: 查看容器日志
  • • a: 顯示/隱藏非活動容器

15. dive - 鏡像層分析工具

交互式探索Docker鏡像內(nèi)容和分層結(jié)構(gòu),幫助優(yōu)化鏡像大小。

安裝方法

# Linux
wget https://github.com/wagoodman/dive/releases/download/v0.10.0/dive_0.10.0_linux_amd64.deb
sudo apt install ./dive_0.10.0_linux_amd64.deb

# Mac
brew install dive

實際應(yīng)用

# 分析鏡像
dive image_name:tag

# 在CI中分析并強制執(zhí)行效率規(guī)則
CI=true dive --ci-config .dive-ci.yaml image_name:tag

使用技巧

dive界面快捷鍵:

  • • Tab: 在層視圖和文件樹之間切換
  • • Ctrl+U: 移除未更改的文件顯示
  • • Ctrl+L: 壓縮目錄視圖
  • • Ctrl+S: 保存圖層為tar歸檔文件

16. cadvisor - 容器監(jiān)控與性能分析工具

提供容器資源使用情況的詳細視圖和歷史數(shù)據(jù),支持與Prometheus等監(jiān)控系統(tǒng)集成。

安裝方法

# 使用Docker運行cAdvisor
docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  --privileged \
  --device=/dev/kmsg \
  gcr.io/cadvisor/cadvisor:v0.45.0

實際應(yīng)用

訪問 http://localhost:8080 查看Web界面,或使用API:

# 獲取特定容器的統(tǒng)計信息
curl http://localhost:8080/api/v1.3/containers/docker/container_id

# 查詢歷史數(shù)據(jù)
curl http://localhost:8080/api/v1.3/containers/docker/container_id/stats?count=60

使用技巧

與Prometheus和Grafana集成,創(chuàng)建長期監(jiān)控系統(tǒng):

# prometheus.yml
scrape_configs:
  - job_name: 'cadvisor'
    static_configs:
    - targets: ['cadvisor:8080']

17. Portainer - Docker圖形化管理工具

提供Docker環(huán)境的Web界面管理工具,簡化容器、鏡像、網(wǎng)絡(luò)和卷的管理與監(jiān)控。

安裝方法

# 安裝Portainer社區(qū)版
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    portainer/portainer-ce:latest

實際應(yīng)用

訪問 https://localhost:9443 設(shè)置管理員賬號并登錄

使用技巧

創(chuàng)建多個環(huán)境,集中管理多個Docker主機:

1. 設(shè)置→環(huán)境→添加環(huán)境

2. 選擇Docker API或Kubernetes API連接方式

3. 提供遠程Docker主機的連接信息

18. netshoot - 網(wǎng)絡(luò)故障排查專用容器

包含幾十種網(wǎng)絡(luò)調(diào)試和排障工具的專用容器,用于深入分析容器網(wǎng)絡(luò)問題。

使用方法

# 啟動netshoot并連接到目標網(wǎng)絡(luò)
docker run --rm -it --network=target_network nicolaka/netshoot

# 使用特定網(wǎng)絡(luò)命名空間啟動
docker run --rm -it --net container:target_container nicolaka/netshoot

實際應(yīng)用

# 在netshoot容器中使用各種網(wǎng)絡(luò)工具
ping service_name
dig service_name
curl -v service_name:port/health
tcpdump -i eth0 -n port 80
nslookup service_name
iptables -L

使用技巧

創(chuàng)建網(wǎng)絡(luò)拓撲圖:

# 使用netshoot中的工具生成網(wǎng)絡(luò)拓撲
docker run --rm -it --net host nicolaka/netshoot
brew install -f && brew

19. lazydocker - 終端UI管理工具

提供終端界面的Docker管理工具,可以在無GUI環(huán)境中方便地管理和監(jiān)控容器。

安裝方法

# Linux/Mac
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash

# 使用Go安裝
go install github.com/jesseduffield/lazydocker@latest

實際應(yīng)用

# 啟動lazydocker
lazydocker

使用技巧

lazydocker快捷鍵:

  • • x: 顯示菜單
  • • a: 顯示所有容器(包括停止的)
  • • e: 進入容器的交互式shell
  • • l: 查看容器日志
  • • s: 停止容器
  • • r: 重啟容器
  • • d: 刪除容器

到此這篇關(guān)于Docker中進行線上問題排查常用的19個命令的文章就介紹到這了,更多相關(guān)Docker問題排查命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker容器開jupyter不能訪問到的解決方法

    Docker容器開jupyter不能訪問到的解決方法

    這篇文章主要介紹了Docker容器開jupyter不能訪問到的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 如何通過vs2017的Dockerfile來生成鏡像

    如何通過vs2017的Dockerfile來生成鏡像

    這篇文章主要為大家詳細介紹了如何通過vs2017的Dockerfile來生成鏡像,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Docker如何部署前端項目

    Docker如何部署前端項目

    這篇文章主要介紹了Docker如何部署前端項目問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Docker搭建私有化倉庫的幾種方法

    Docker搭建私有化倉庫的幾種方法

    搭建 Docker 私有化倉庫是一個非常重要的實踐,它能夠幫助你安全地存儲和管理 Docker 鏡像,本文主要介紹了Docker搭建私有化倉庫的的幾種方法,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • docker-compose---安裝掛載本地文件啟動mariadb問題

    docker-compose---安裝掛載本地文件啟動mariadb問題

    這篇文章主要介紹了docker-compose---安裝掛載本地文件啟動mariadb問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 快速使用docker-compose部署clickhouse的教程

    快速使用docker-compose部署clickhouse的教程

    ClickHouse 的工作速度比傳統(tǒng)方法快 100-1000 倍。它適用于大數(shù)據(jù)、業(yè)務(wù)分析和時間序列數(shù)據(jù)。在這個小教程中,我將向您展示如何以最少的設(shè)置安裝 ClickHouse,感興趣的朋友一起看看吧
    2021-11-11
  • docker網(wǎng)卡的IP地址修改方法總結(jié)

    docker網(wǎng)卡的IP地址修改方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于docker網(wǎng)卡的IP地址修改方法,文中通過實例代碼介紹的非常詳細,對大家學習或者使用docker具有一定的參考學習價值,需要的朋友可以參考下
    2023-06-06
  • Docker鏡像壓縮與優(yōu)化操作

    Docker鏡像壓縮與優(yōu)化操作

    這篇文章主要介紹了Docker鏡像壓縮與優(yōu)化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • docker搭建canal的實現(xiàn)步驟

    docker搭建canal的實現(xiàn)步驟

    canal是監(jiān)聽主mysql的binlog日志,本文主要介紹了docker搭建canal的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Docker容器中運行flume及啟動不輸出運行日志問題

    Docker容器中運行flume及啟動不輸出運行日志問題

    這篇文章主要介紹了 Docker容器中運行flume及啟動不輸出運行日志問題及解決方法,需要的朋友參考下吧
    2018-03-03

最新評論

奎屯市| 精河县| 上蔡县| 堆龙德庆县| 新绛县| 新建县| 南靖县| 巢湖市| 朔州市| 林西县| 白朗县| 五华县| 罗定市| 凭祥市| 惠水县| 集贤县| 朝阳县| 堆龙德庆县| 新丰县| 长岭县| 昂仁县| 象山县| 弥勒县| 武义县| 青神县| 丰原市| 平塘县| 多伦县| 札达县| 上虞市| 台湾省| 庆云县| 盐城市| 祁连县| 湘潭市| 宣武区| 合肥市| 景德镇市| 林西县| 栾川县| 香河县|