欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker鏡像大小查看和排序方法小結(jié)

 更新時(shí)間:2025年05月07日 09:00:11   作者:Kwan的解憂雜貨鋪@新空間  
在 Docker 日常使用中,隨著鏡像數(shù)量的增加,磁盤(pán)空間管理變得尤為重要,了解如何有效地查看和排序 Docker 鏡像大小不僅可以幫助我們釋放寶貴的磁盤(pán)空間,還能優(yōu)化容器的構(gòu)建和部署流程,所以本文給大家總結(jié)了Docker鏡像大小查看和排序方法,需要的朋友可以參考下

為什么需要關(guān)注 Docker 鏡像大?。?/h2>

在深入技術(shù)細(xì)節(jié)前,讓我們先理解為什么鏡像大小如此重要。Docker 鏡像大小直接影響以下幾個(gè)方面:

  1. 存儲(chǔ)成本:大型鏡像占用更多磁盤(pán)空間,在開(kāi)發(fā)環(huán)境中可能導(dǎo)致磁盤(pán)快速耗盡
  2. 傳輸效率:鏡像越大,推送(push)和拉取(pull)所需時(shí)間越長(zhǎng)
  3. 部署速度:容器啟動(dòng)時(shí)間與鏡像大小直接相關(guān)
  4. 安全性:更大的鏡像通常包含更多不必要的組件,增加了攻擊面

根據(jù) Docker 官方統(tǒng)計(jì),優(yōu)化后的鏡像通??梢詼p少 70%以上的大小,這意味著更快的 CI/CD 流水線和更高效的資源利用。

基礎(chǔ)命令解析:docker images

docker images是查看本地 Docker 鏡像的基礎(chǔ)命令,默認(rèn)輸出如下:

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
ubuntu       latest    1d622ef86b13   2 weeks ago    72.9MB
nginx        latest    2bdc49f2f8a1   3 weeks ago    142MB

默認(rèn)情況下,鏡像按倉(cāng)庫(kù)名稱排序,而非大小。要獲取更有價(jià)值的信息,我們需要對(duì)輸出進(jìn)行定制。

方法一:簡(jiǎn)單按大小降序排列

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -h -r

這個(gè)命令的核心部分解析:

  • --format:自定義輸出格式
  • "{{.Size}}\t{{.Repository}}:{{.Tag}}":只顯示大小和完整鏡像名,用制表符分隔
  • sort -h -r-h表示"human-readable"(人類(lèi)可讀格式),-r表示逆序(從大到?。?/li>

實(shí)際應(yīng)用場(chǎng)景:當(dāng)你需要快速找出哪個(gè)鏡像占用了最多空間時(shí),這個(gè)簡(jiǎn)潔的命令非常有用。

方法二:增強(qiáng)版排序輸出

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}\t{{.ID}}" | sort -h -r | column -t -s $'\t'

這個(gè)改進(jìn)版本增加了鏡像 ID,并通過(guò)column -t美化為表格格式:

  • {{.ID}}:添加鏡像 ID 列
  • column -t -s $'\t':將制表符分隔的內(nèi)容對(duì)齊為整齊的列

輸出示例

3.45GB  ubuntu:latest    1d622ef86b13
1.89GB  nginx:alpine     2bdc49f2f8a1
567MB   busybox:latest    a84a6faf4a8e

方法三:保留表頭的完整排序方案

docker images --format "table {{.Size}}\t{{.Repository}}:{{.Tag}}" | (read -r; printf "%s\n" "$REPLY"; sort -h -r)

這個(gè)復(fù)雜命令實(shí)現(xiàn)了:

  1. 使用table關(guān)鍵字保留表頭
  2. read -r; printf "%s\n" "$REPLY":先讀取并輸出第一行(表頭)
  3. 然后對(duì)剩余內(nèi)容進(jìn)行排序

技術(shù)難點(diǎn)解析:直接對(duì)表頭和數(shù)據(jù)一起排序會(huì)導(dǎo)致表頭出現(xiàn)在奇怪的位置,這個(gè)技巧完美解決了這個(gè)問(wèn)題。

方法四:跨平臺(tái)兼容方案

某些舊版 Linux 系統(tǒng)可能不支持sort -h參數(shù),可以使用以下替代方案:

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sed 's/GB/*1024*1024/;s/MB/*1024/;s/KB//' | awk '{printf "%.0f %s\n", $1, $2}' | sort -n -r | awk '{$1=$1/1024; print $1"MB", $2}'

這個(gè)復(fù)雜管道:

  1. 使用sed將 GB/MB 轉(zhuǎn)換為 KB
  2. awk計(jì)算具體數(shù)值
  3. sort -n數(shù)值排序
  4. 最后轉(zhuǎn)換回 MB 顯示

高級(jí)技巧:結(jié)合其他工具深入分析

1. 找出可以刪除的大型鏡像

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}\t{{.ID}}" | sort -h -r | head -n 5

head -n 5只顯示最大的 5 個(gè)鏡像,便于針對(duì)性清理。

2. 計(jì)算所有鏡像總大小

docker images --format "{{.Size}}" | sed 's/GB/*1024/;s/MB//;s/KB//\/1024/' | awk '{sum+=$1} END {print sum "MB"}'

3. 結(jié)合 grep 過(guò)濾特定鏡像

docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -h -r | grep -v "<none>"

排除那些沒(méi)有標(biāo)簽的中間鏡像。

到此這篇關(guān)于Docker鏡像大小查看和排序方法小結(jié)的文章就介紹到這了,更多相關(guān)Docker鏡像大小排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker默認(rèn)路徑存儲(chǔ)不足解決過(guò)程

    docker默認(rèn)路徑存儲(chǔ)不足解決過(guò)程

    這篇文章主要給大家介紹了關(guān)于docker默認(rèn)路徑存儲(chǔ)不足的解決過(guò)程,Docker存儲(chǔ)空間不足的錯(cuò)誤通常表明Docker Daemon分配的本地磁盤(pán)空間用盡,文中通過(guò)代碼將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • 使用docker build kit構(gòu)建樹(shù)莓派上可用的Docker鏡像

    使用docker build kit構(gòu)建樹(shù)莓派上可用的Docker鏡像

    這篇文章主要介紹了使用docker build kit構(gòu)建樹(shù)莓派上可用的Docker鏡像,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Docker?Desktop無(wú)法正常啟動(dòng)解決(failed?to?start...)

    Docker?Desktop無(wú)法正常啟動(dòng)解決(failed?to?start...)

    有一段時(shí)間沒(méi)有使用docker了,突然要用到結(jié)果發(fā)現(xiàn)docker?desktop用不了了,這篇文章主要給大家介紹了關(guān)于Docker?Desktop無(wú)法正常啟動(dòng)解決的過(guò)程,,需要的朋友可以參考下
    2023-01-01
  • Docker使用Swarm組建集群的方法

    Docker使用Swarm組建集群的方法

    Docker 使用 Swarm 可以很方便的在多個(gè)主機(jī)上創(chuàng)建容器集群,并且容器之間可以跨主機(jī)網(wǎng)絡(luò)通信。這篇文章主要介紹了Docker使用Swarm組建集群,需要的朋友可以參考下
    2017-11-11
  • IDEA 配置Docker的過(guò)程

    IDEA 配置Docker的過(guò)程

    這篇文章主要介紹了IDEA 配置Docker的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • docker容器如何優(yōu)雅的終止詳解

    docker容器如何優(yōu)雅的終止詳解

    最近公司在試驗(yàn)如何將項(xiàng)目部署到docker容器中去,這其中涉及到一個(gè)技術(shù)環(huán)節(jié),那就是如何讓docker容器優(yōu)雅的終止。所謂優(yōu)雅終止,指的就是程序在退出前有清理資源,保存必要中間狀態(tài),持久化內(nèi)存數(shù)據(jù)的機(jī)會(huì)。下面通過(guò)這篇大家一起由簡(jiǎn)單到復(fù)雜逐一考量一下。
    2016-11-11
  • Docker 運(yùn)行時(shí)的用戶與組管理的方法

    Docker 運(yùn)行時(shí)的用戶與組管理的方法

    這篇文章主要介紹了Docker 運(yùn)行時(shí)的用戶與組管理的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Docker部署php運(yùn)行環(huán)境(php-fpm+nginx)

    Docker部署php運(yùn)行環(huán)境(php-fpm+nginx)

    Docker?是一種流行的容器化平臺(tái),可以幫助開(kāi)發(fā)人員快速創(chuàng)建、部署和管理容器化應(yīng)用程序,本文將介紹如何使用?Docker?搭建?PHP?開(kāi)發(fā)環(huán)境服務(wù)器,讓您能夠輕松地開(kāi)始?PHP?開(kāi)發(fā)工作,感興趣的可以了解一下
    2023-11-11
  • docker啟動(dòng)ES內(nèi)存溢出的解決方案

    docker啟動(dòng)ES內(nèi)存溢出的解決方案

    這篇文章主要介紹了docker啟動(dòng)ES內(nèi)存溢出的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 使用docker搭建go環(huán)境的簡(jiǎn)單步驟

    使用docker搭建go環(huán)境的簡(jiǎn)單步驟

    最近公司里面的項(xiàng)目用到了Docker,正好準(zhǔn)備學(xué)習(xí)下Golang,所以就學(xué)習(xí)Golang順便也學(xué)習(xí)下Docker怎么用的,剛好從頭開(kāi)始配置下環(huán)境,這篇文章主要給大家介紹了關(guān)于使用docker搭建go環(huán)境的簡(jiǎn)單步驟,需要的朋友可以參考下
    2023-10-10

最新評(píng)論