溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Docker 環(huán)境清理的常用方法有哪些

發(fā)布時(shí)間:2021-07-13 15:52:42 來源:億速云 閱讀:210 作者:chen 欄目:web開發(fā)

本篇內(nèi)容介紹了“Docker 環(huán)境清理的常用方法有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

如果你使用 docker  進(jìn)行大規(guī)模開發(fā),但是沒有清理策略,那么你的磁盤馬上就會(huì)被填滿,當(dāng)你真的必須因?yàn)楫a(chǎn)品火爆而要立即交付一些東西時(shí),你就無法交付。

當(dāng)我們?cè)谟?jì)算機(jī)中運(yùn)行一個(gè)進(jìn)程時(shí),一旦這個(gè)進(jìn)程完成,所有東西都會(huì)隨之銷毀。容器是我們現(xiàn)在很多人操作的基礎(chǔ)設(shè)施。一切東西都運(yùn)行在一個(gè)容器上,旨在每個(gè)容器有一個(gè)進(jìn)程。當(dāng)進(jìn)程完成,容器就退出。但它不會(huì)自行清理。

Docker 積累的東西

你需要注意這些

  • 已經(jīng)停止的容器

  • 磁盤卷

  • 鏡像

  • 網(wǎng)絡(luò)

如果有足夠的空間,你可能不太關(guān)心磁盤空間,但是網(wǎng)絡(luò)也很重要。默認(rèn)地,Docker 使用 bridge 網(wǎng)絡(luò),它的極限是 31  個(gè)網(wǎng)絡(luò)。當(dāng)達(dá)到極限時(shí),你會(huì)看到下面這條消息:

could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

如果你是一個(gè)為每個(gè)項(xiàng)目創(chuàng)建一個(gè)網(wǎng)絡(luò)的 docker-compose  重度用戶,就會(huì)發(fā)生這種情況。你可以通過設(shè)置一個(gè)自定義--subnet子網(wǎng)來解決問題,例如:

docker network create dada --subnet 192.167.11.0/24

但無論如何,本文的重點(diǎn)是清理。

使用 docker 清理

清理已經(jīng)停止的容器

docker rm -v $(docker ps --all --quiet --filter 'status=exited')

這會(huì)找到所有處于已退出(exited)狀態(tài)的容器,一行一個(gè)地輸出它們的 ID,以便我們可以將它提供給其它 shell 指令。

我們使用docker rm -v來刪除任何匿名卷(沒有顯式名稱的卷)。

清理磁盤卷

上面的命令應(yīng)該刪除與該容器關(guān)聯(lián)的卷。如果你手動(dòng)創(chuàng)建卷,并要?jiǎng)h除任何未被使用的卷:

docker volume rm $(docker volume ls --quiet --filter 'dangling=true')

清理鏡像

通常刪除所有 Docker 鏡像是安全的。我們可以在需要的時(shí)候按需獲取。通常在一個(gè)鏡像被清理后,構(gòu)建時(shí)間會(huì)更長(zhǎng),因?yàn)?docker  守護(hù)進(jìn)程需要花時(shí)間再次下載鏡像

docker rm --force $(docker images --quiet)

這里,我們使用了--force來強(qiáng)制刪除鏡像,即使一個(gè)容器正在使用那個(gè)鏡像。我們可以以后再獲取這個(gè)鏡像。

清理網(wǎng)絡(luò)

這很簡(jiǎn)單。我們可以刪除任何網(wǎng)絡(luò),它會(huì)在之后按需重建。

docker network rm $(docker network ls --quiet)

使用 docker-compose 清理

如果你使用 docker-compose 啟動(dòng)容器,我們有一種簡(jiǎn)單的方法來清理與特定 compose 文件關(guān)聯(lián)的資源。

docker-compose down --volumes --rmi all --remove-orphans

不幸的是,這個(gè)命令不會(huì)刪除匿名卷,因此你必須處理這些匿名卷。

一條命令解決所有問題

docker 是短暫的,我們總是可以重新獲取鏡像,為了開發(fā)重新創(chuàng)建我們的數(shù)據(jù)庫,或者這只是一個(gè)持續(xù)集成系統(tǒng),我們可以刪除一切。

docker system prune --all --force --volumes

“Docker 環(huán)境清理的常用方法有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI