最近接手一台機器,裡面是以docker做為開發以及執行的環境。
我沒用過docker所以來請教各位。
因為硬碟空間有些不足,我查詢之後發現裡面有很多image佔用了許多空間。
例如裡面有許多gitlab/gitlab-runner跟gitlab/gitlab-ce的image,每個大約都2G左右,大約有上百個,這些image都是必要的嗎?
這台機器主要是執行網頁程式,所以也有一些php跟nginx的image。這些image大概有重複兩三個,請問是否能刪除重複的?
目前這部機器有執行一之網頁的程式,我希望可以保持這個程式正常執行,然後刪掉多餘重複的image,請問我應該如何著手?謝謝
既然留言有達到你需求,我就開個回應吧
可以利用 docker image prune
這個功能
基本上他會幫你清理沒有相對應 container
用到
或者是你打包其他 image
以他為基底的 image
註:以上是我的理解啦,沒有去看官方的詳細描述,但我用下來的感覺是這樣
所以基本是不太會去清到還正在使用的 image
而且就算你直接使用 docker image rm {image_id or image_name}
docker 也有做相關防呆保護,不會讓你刪到還有在使用相關 image
另外也有 docker container prune
可以使用
不過這個就比較不推薦了,他會刪掉沒啟動的 container
這個請小心使用QQ
例如裡面有許多gitlab/gitlab-runner跟gitlab/gitlab-ce的image,每個大約都2G左右,大約有上百個,這些image都是必要的嗎?
聽你的敘述,看來你第一步驟應該是
「判斷哪些是多餘不要的Images」了
建議你不管做什麼動作,都應該要先備份,而且確定能完全復原
否則,你剛接手,任一動作都有可能產生不可逆的錯誤....
然後第二步驟是,
你沒用過Docker
先開一個Lab環境,玩一下Docker吧!別急著想去刪除Production的東西...
回到根本問題,『硬碟空間有些不足』
既然短時間沒辦法判斷「判斷哪些是多餘不要的Images」以及「沒用過Docker」
是不是應該短解一下,先放大磁碟空間呢!(有時候先治標再治本是必要的)
最後,一定要有Recovery的方案!
你得要隨時準備,當服務停止運作後,你能在短時間內復原
否則,不要輕舉妄動!
因為程式你不是你寫得,裡面埋了什麼地雷,是你想也想不到的!