iT邦幫忙

0

請問如何篩選docker中可以刪除的多餘image?

  • 分享至 

  • xImage

最近接手一台機器,裡面是以docker做為開發以及執行的環境。
我沒用過docker所以來請教各位。
因為硬碟空間有些不足,我查詢之後發現裡面有很多image佔用了許多空間。
例如裡面有許多gitlab/gitlab-runner跟gitlab/gitlab-ce的image,每個大約都2G左右,大約有上百個,這些image都是必要的嗎?
這台機器主要是執行網頁程式,所以也有一些php跟nginx的image。這些image大概有重複兩三個,請問是否能刪除重複的?
目前這部機器有執行一之網頁的程式,我希望可以保持這個程式正常執行,然後刪掉多餘重複的image,請問我應該如何著手?謝謝

Han iT邦研究生 1 級 ‧ 2022-09-28 11:05:03 檢舉
docker image prune?
lsesroom iT邦新手 2 級 ‧ 2022-09-28 11:17:57 檢舉
感謝,這個指令滿符合我的需求。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
Han
iT邦研究生 1 級 ‧ 2022-09-28 11:43:26
最佳解答

既然留言有達到你需求,我就開個回應吧

可以利用 docker image prune 這個功能
基本上他會幫你清理沒有相對應 container 用到
或者是你打包其他 image 以他為基底的 image
註:以上是我的理解啦,沒有去看官方的詳細描述,但我用下來的感覺是這樣

所以基本是不太會去清到還正在使用的 image
而且就算你直接使用 docker image rm {image_id or image_name}
docker 也有做相關防呆保護,不會讓你刪到還有在使用相關 image

另外也有 docker container prune 可以使用
不過這個就比較不推薦了,他會刪掉沒啟動的 container
這個請小心使用QQ

lsesroom iT邦新手 2 級 ‧ 2022-09-28 14:51:55 檢舉

感謝,我只要維持正在使用的程式(也就是正在跑的container)可以運作就好,這個指令剛好符合我的需求。

0
踏雪尋梅
iT邦研究生 5 級 ‧ 2022-09-28 10:18:59

例如裡面有許多gitlab/gitlab-runner跟gitlab/gitlab-ce的image,每個大約都2G左右,大約有上百個,這些image都是必要的嗎?

聽你的敘述,看來你第一步驟應該是

「判斷哪些是多餘不要的Images」了

建議你不管做什麼動作,都應該要先備份,而且確定能完全復原
否則,你剛接手,任一動作都有可能產生不可逆的錯誤....

然後第二步驟是,

你沒用過Docker
先開一個Lab環境,玩一下Docker吧!別急著想去刪除Production的東西...

回到根本問題,『硬碟空間有些不足』
既然短時間沒辦法判斷「判斷哪些是多餘不要的Images」以及「沒用過Docker」

是不是應該短解一下,先放大磁碟空間呢!(有時候先治標再治本是必要的)

最後,一定要有Recovery的方案!
你得要隨時準備,當服務停止運作後,你能在短時間內復原
否則,不要輕舉妄動!

因為程式你不是你寫得,裡面埋了什麼地雷,是你想也想不到的!

lsesroom iT邦新手 2 級 ‧ 2022-09-28 10:47:27 檢舉

是的,我已經有完整備份,也做過還原演練;空間上有點窘迫,但暫時還可以使用一段時間。所以我現在需要的只是如何判斷哪些是多餘的images。

踏雪尋梅 iT邦研究生 5 級 ‧ 2022-09-28 11:05:14 檢舉

如何判斷哪些是多餘的images

這事情我想,真的只能由你們單位自行驗證了

也許你可以把備份的還原到一個封閉環境,依序確認哪些是要留用的
哪些是不要留用的,這樣更為安全

0
souda
iT邦高手 1 級 ‧ 2022-09-28 11:02:57

建議您可以這麼做!找看看有沒有安裝portainer或是你直接安裝他就有介面可以點選.

我要發表回答

立即登入回答