Docker使用Prune命令清理none鏡像
none鏡像的產(chǎn)生和困惑
我們偶爾會(huì)看到 none鏡像(虛懸鏡像),那是因?yàn)?/p>
- 構(gòu)建鏡像過(guò)程中因?yàn)槟_本錯(cuò)誤導(dǎo)致很多鏡像構(gòu)建終止,產(chǎn)生很多none標(biāo)簽的版本
- 手動(dòng)構(gòu)建鏡像的時(shí)候沒(méi)有進(jìn)行提交,遺留來(lái)的垃圾鏡像
- 這些鏡像占據(jù)較大的存儲(chǔ)空間,需要?jiǎng)h除
如下所示
root@instance-o70no2nw:~# docker images -a REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 867c2dc0031b 12 hours ago 465MB mytomcat 8.5.0 34c8c864d046 12 hours ago 465MB ubuntu 16.04 a3551444fc85 2 days ago 119MB mysql 8.0.16 d72169616e20 4 days ago 443MB mysql latest d72169616e20 4 days ago 443MB tomcat latest 5a069ba3df4d 2 weeks ago 465MB
如何清理none對(duì)象
Docker 采用保守的方法來(lái)清理未使用的對(duì)象(通常稱為“垃圾回收”),例如鏡像、容器、卷和網(wǎng)絡(luò):
除非明確要求 Docker 這樣做,否則通常不會(huì)刪除這些對(duì)象。這可能會(huì)導(dǎo)致 Docker 使用額外的磁盤(pán)空間。
對(duì)于每種類型的對(duì)象,Docker 都提供了一條 prune 命令。
另外,可以使用 docker system prune一次清理多種類型的對(duì)象。本主題講解如何使用這些 prune 修剪命令
修剪鏡像
清理none鏡像(虛懸鏡像)
命令: docker image prune
默認(rèn)情況下,docker image prune 命令只會(huì)清理 虛無(wú)鏡像(沒(méi)被標(biāo)記且沒(méi)被其它任何鏡像引用的鏡像)
root@instance-o70no2nw:~# docker image prune WARNING! This will remove all dangling images. Are you sure you want to continue? [y/N] y Total reclaimed space: 0B
清理無(wú)容器使用的鏡像
命令: docker image prune -a
默認(rèn)情況下,系統(tǒng)會(huì)提示是否繼續(xù)。要繞過(guò)提示,請(qǐng)使用 -f 或 --force 標(biāo)志。
可以使用 --filter 標(biāo)志使用過(guò)濾表達(dá)式來(lái)限制修剪哪些鏡像。例如,只考慮 24 小時(shí)前創(chuàng)建的鏡像:
$ docker image prune -a --filter "until=24h"
修剪容器
停止容器后不會(huì)自動(dòng)刪除這個(gè)容器,除非在啟動(dòng)容器的時(shí)候指定了 –rm 標(biāo)志。使用 docker ps -a 命令查看 Docker 主機(jī)上包含停止的容器在內(nèi)的所有容器。你可能會(huì)對(duì)存在這么多容器感到驚訝,尤其是在開(kāi)發(fā)環(huán)境。停止?fàn)顟B(tài)的容器的可寫(xiě)層仍然占用磁盤(pán)空間。要清理掉這些,可以使用 docker container prune 命令:
$ docker container prune WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] y
默認(rèn)情況下,系統(tǒng)會(huì)提示是否繼續(xù)。要繞過(guò)提示,請(qǐng)使用 -f 或 --force 標(biāo)志。
默認(rèn)情況下,所有停止?fàn)顟B(tài)的容器會(huì)被刪除??梢允褂?--filter 標(biāo)志來(lái)限制范圍。例如,下面的命令只會(huì)刪除 24 小時(shí)之前創(chuàng)建的停止?fàn)顟B(tài)的容器:
修剪卷
卷可以被一個(gè)或多個(gè)容器使用,并占用 Docker 主機(jī)上的空間。卷永遠(yuǎn)不會(huì)被自動(dòng)刪除,因?yàn)檫@么做會(huì)破壞數(shù)據(jù)。
$ docker volume prune WARNING! This will remove all volumes not used by at least one container. Are you sure you want to continue? [y/N] y
修剪網(wǎng)絡(luò)
Docker 網(wǎng)絡(luò)不會(huì)占用太多磁盤(pán)空間,但是它們會(huì)創(chuàng)建 iptables 規(guī)則,橋接網(wǎng)絡(luò)設(shè)備和路由表?xiàng)l目。要清理這些東西,可以使用 docker network prune 來(lái)清理沒(méi)有被容器未使用的網(wǎng)絡(luò)。
$ docker network prune
修剪一切
docker system prune 命令是修剪鏡像、容器和網(wǎng)絡(luò)的快捷方式。在 Docker 17.06.0 及以前版本中,還好修剪卷。在 Docker 17.06.1 及更高版本中必須為 docker system prune 命令明確指定 --volumes 標(biāo)志才會(huì)修剪卷。
$ docker system prune WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue? [y/N] y
如果使用 Docker 17.06.1 或更高版本,同時(shí)也想修剪卷,使用 --volumes 標(biāo)志。
$ docker system prune --volumes WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? [y/N] y
到此這篇關(guān)于Docker使用Prune命令清理none鏡像的文章就介紹到這了,更多相關(guān)Docker 清理none鏡像 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
3分鐘用Docker搭建一個(gè)Minecraft服務(wù)器
這篇文章主要介紹了3分鐘用Docker搭建一個(gè)Minecraft服務(wù)器的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11Docker nacos集群部署的實(shí)現(xiàn)
本文將深入探討如何使用Docker來(lái)部署Nacos集群,從而實(shí)現(xiàn)服務(wù)的快速擴(kuò)展、高可用性和可維護(hù)性,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01一文學(xué)會(huì)docker?安裝mysql的方法
這篇文章主要介紹了docker?安裝?mysql的方法,通過(guò)使用docker命令下載mysql接著使用docker命令創(chuàng)建實(shí)例并啟動(dòng),對(duì)docker?安裝?mysql相關(guān)知識(shí)感興趣的朋友一起看看吧2022-04-04docker拉取鏡像報(bào)錯(cuò):Error?response?from?daemon:?Get?“https://r
今天做完一個(gè)新項(xiàng)目,搭建了一個(gè)新的虛擬機(jī),打算使用docker來(lái)搭建各種環(huán)境,發(fā)現(xiàn)拉取鏡像報(bào)錯(cuò)Error?response?from?daemon:?Get?"https://registry-1.docker.io/v2/":?dial?tcp,所以接下來(lái)給大家介紹了docker拉取鏡像報(bào)錯(cuò)的解決過(guò)程,需要的朋友可以參考下2024-08-08Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署
這篇文章主要介紹了Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Docker 部署Mysql 服務(wù)和Redis 服務(wù)的方法
這篇文章主要介紹了Docker 部署Mysql 服務(wù)和Redis 服務(wù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11詳解docker中Dockerfile指令創(chuàng)建鏡像
這篇文章主要介紹了詳解docker中Dockerfile指令創(chuàng)建鏡像,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11