Docker 清理的常用方法及問題
如果你使用 docker 進(jìn)行大規(guī)模開發(fā),但是沒有清理策略,那么你的磁盤馬上就會被填滿,當(dāng)你真的必須因為產(chǎn)品火爆而要立即交付一些東西時,你就無法交付。
當(dāng)我們在計算機中運行一個進(jìn)程時,一旦這個進(jìn)程完成,所有東西都會隨之銷毀。容器是我們現(xiàn)在很多人操作的基礎(chǔ)設(shè)施。一切東西都運行在一個容器上,旨在每個容器有一個進(jìn)程。當(dāng)進(jìn)程完成,容器就退出。但它不會自行清理。
Docker 積累的東西你需要注意這些
已經(jīng)停止的容器
磁盤卷
鏡像
網(wǎng)絡(luò)
如果有足夠的空間,你可能不太關(guān)心磁盤空間,但是網(wǎng)絡(luò)也很重要。默認(rèn)地,Docker 使用 bridge 網(wǎng)絡(luò),它的極限是 31 個網(wǎng)絡(luò)。當(dāng)達(dá)到極限時,你會看到下面這條消息:
could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
如果你是一個為每個項目創(chuàng)建一個網(wǎng)絡(luò)的 docker-compose 重度用戶,就會發(fā)生這種情況。你可以通過設(shè)置一個自定義 --subnet 子網(wǎng)來解決問題,例如:
docker network create dada --subnet 192.167.11.0/24
但無論如何,本文的重點是清理。
使用 docker 清理清理已經(jīng)停止的容器docker rm -v $(docker ps --all --quiet --filter ’status=exited’)
這會找到所有處于已退出(exited)狀態(tài)的容器,一行一個地輸出它們的 ID,以便我們可以將它提供給其它 shell 指令。
我們使用 docker rm -v 來刪除任何匿名卷(沒有顯式名稱的卷)。
清理磁盤卷上面的命令應(yīng)該刪除與該容器關(guān)聯(lián)的卷。如果你手動創(chuàng)建卷,并要刪除任何未被使用的卷:
docker volume rm $(docker volume ls --quiet --filter ’dangling=true’)清理鏡像
通常刪除所有 Docker 鏡像是安全的。我們可以在需要的時候按需獲取。通常在一個鏡像被清理后,構(gòu)建時間會更長,因為 docker 守護(hù)進(jìn)程需要花時間再次下載鏡像
docker rm --force $(docker images --quiet)
這里,我們使用了 --force 來強制刪除鏡像,即使一個容器正在使用那個鏡像。我們可以以后再獲取這個鏡像。
清理網(wǎng)絡(luò)這很簡單。我們可以刪除任何網(wǎng)絡(luò),它會在之后按需重建。
docker network rm $(docker network ls --quiet)使用 docker-compose 清理
如果你使用 docker-compose 啟動容器,我們有一種簡單的方法來清理與特定 compose 文件關(guān)聯(lián)的資源。
docker-compose down --volumes --rmi all --remove-orphans
不幸的是,這個命令不會刪除匿名卷,因此你必須處理這些匿名卷。
一條命令解決所有問題docker 是短暫的,我們總是可以重新獲取鏡像,為了開發(fā)重新創(chuàng)建我們的數(shù)據(jù)庫,或者這只是一個持續(xù)集成系統(tǒng),我們可以刪除一切。
docker system prune --all --force --volumes
到此這篇關(guān)于Docker 清理的常用方法及問題的文章就介紹到這了,更多相關(guān)Docker 清理內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. python中scrapy處理項目數(shù)據(jù)的實例分析2. Python中讀取文件名中的數(shù)字的實例詳解3. 在idea中為注釋標(biāo)記作者日期操作4. 通過Ajax方式綁定select選項數(shù)據(jù)的實例5. JSP頁面的靜態(tài)包含和動態(tài)包含使用方法6. ASP.Net Core對USB攝像頭進(jìn)行截圖7. ASP.NET MVC使用Boostrap實現(xiàn)產(chǎn)品展示、查詢、排序、分頁8. .net如何優(yōu)雅的使用EFCore實例詳解9. 使用AJAX(包含正則表達(dá)式)驗證用戶登錄的步驟10. ajax動態(tài)加載json數(shù)據(jù)并詳細(xì)解析
