亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何刪除舊的和未使用的碼頭形象

如何刪除舊的和未使用的碼頭形象

呼喚遠方 2019-07-16 14:15:59
如何刪除舊的和未使用的碼頭形象在長時間運行碼頭時,系統中存在大量的圖像。如何安全地同時刪除所有未使用的Docker映像以釋放存儲空間?此外,我還想刪除幾個月前提取的圖像,這些圖像具有正確的TAG.所以,我不是要求只刪除無標記的圖像。我正在尋找一種方法來刪除一般未使用的圖像,其中包括未標記的圖像和其他圖像,比如幾個月前使用正確的TAG.
查看完整描述

3 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

碼頭1.13:Pr 26108提交86de7c0引入一些新的命令,以幫助可視化對接守護進程數據在磁盤上占用的空間,并允許輕松清理“不必要”的多余空間。

docker system prune將刪除所有懸空數據(即:停止的容器、沒有容器的卷和沒有容器的圖像)。甚至未使用的數據-a選擇。

你還擁有:

未用圖像,使用docker image prune -a(用于移除懸掛物)未經處理的圖像)。
警告:‘未用意思是“沒有任何容器引用的圖像”:在使用之前要小心-a.

如上文所示阿升回答docker system prune --all將移除所有未用圖像不僅僅是懸空的.。這可能有點太過分了。

結合docker xxx prune帶著--filter期權是限制修剪的好方法(DockerSDKAPI 1.28最低,所以碼頭17.04+)

目前支持的過濾器是:

  • until (<timestamp>)

    -僅刪除在給定時間戳之前創建的容器、圖像和網絡
  • label (label=<key>label=<key>=<value>label!=<key>

    ,或

    label!=<key>=<value>

    )-只使用(或)刪除容器、圖像、網絡和卷。

    ,以防萬一

    label!=...

    指定的標簽。

見“剪枝圖像“舉個例子。


原答復(2016年9月)

我通常會:

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

我有一個移除那些[懸空圖像]的別名13drmi

這個dangling=true篩選器查找未使用的圖像

這樣,不再被標記的圖像引用的任何中間圖像被刪除。

我也這么做第一退出過程(集裝箱)

alias drmae='docker rm $(docker ps -qa --no-trunc --filter "status=exited")'

哈立茲指出在評論中:

從技術上講,在清理圖像之前,您應該先清理容器,因為這樣可以捕獲更多的懸空圖像和較少的錯誤。.


杰斯·弗雷澤爾(Jfrazelle)bashrc函數:

dcleanup(){
    docker rm -v $(docker ps --filter status=exited -q 2>/dev/null) 2>/dev/null
    docker rmi $(docker images --filter dangling=true -q 2>/dev/null) 2>/dev/null
}

要刪除舊圖像,而不僅僅是“未引用-懸掛”圖像,您可以考慮docker-gc:


一個簡單的Docker容器和圖像垃圾收集腳本。

  • 一個多小時前離開的容器被移除。
  • 刪除后不屬于任何剩余容器的圖像。


查看完整回答
反對 回復 2019-07-16
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

移除舊標記有一個多月歷史的圖片:

$ docker images --no-trunc --format '{{.ID}} {{.CreatedSince}}' \
    | grep ' months' | awk '{ print $1 }' \
    | xargs --no-run-if-empty docker rmi

注意它會失敗若要刪除存儲庫中引用的容器使用的圖像,則需要依賴的子圖像.這可能就是你想要的。否則只需添加-f旗子。

/etc/cron.daily/docker-gc劇本:

#!/bin/sh -e

# Delete all stopped containers (including data-only containers).
docker ps -a -q --no-trunc --filter "status=exited" | xargs --no-run-if-empty docker rm -v

# Delete all tagged images more than a month old
# (will fail to remove images still used).
docker images --no-trunc --format '{{.ID}} {{.CreatedSince}}' | grep ' months' | awk '{ print $1 }' | xargs --no-run-if-empty docker rmi || true

# Delete all 'untagged/dangling' (<none>) images
# Those are used for Docker caching mechanism.
docker images -q --no-trunc --filter dangling=true | xargs --no-run-if-empty docker rmi

# Delete all dangling volumes.
docker volume ls -qf dangling=true | xargs --no-run-if-empty docker volume rm



查看完整回答
反對 回復 2019-07-16
  • 3 回答
  • 0 關注
  • 682 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號