日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Docker?刪除及清理鏡像的方法_docker

作者:huayang183 ? 更新時(shí)間: 2022-05-06 編程語(yǔ)言

一、通過(guò)標(biāo)簽刪除鏡像

通過(guò)如下兩個(gè)都可以刪除鏡像:

docker rmi [image]

或者:

docker image rm [image]

支持的子命令如下:

  • -f, -force: 強(qiáng)制刪除鏡像,即便有容器引用該鏡像;
  • -no-prune: 不要?jiǎng)h除未帶標(biāo)簽的父鏡像;

Docker 查看鏡像信息

例如,我們想刪除上章節(jié)創(chuàng)建的?allen_mysql:5.7?鏡像,命令如下:

docker rmi allen_mysql:5.7

Docker 刪除鏡像

從上面章節(jié)中,我們知道?allen_mysql:5.7?和?docker.io/mysql:5.7?實(shí)際上指向的是同一個(gè)鏡像,那么,您可以能會(huì)有疑問(wèn),我刪除了?allen_mysql:5.7, 會(huì)不會(huì)將?docker.io/mysql:5.7?鏡像也給刪除了?

實(shí)際上,當(dāng)同一個(gè)鏡像擁有多個(gè)標(biāo)簽時(shí),執(zhí)行?docker rmi?命令,只是會(huì)刪除了該鏡像眾多標(biāo)簽中,您指定的標(biāo)簽而已,并不會(huì)影響原始的那個(gè)鏡像文件。

不信的話,我們可以執(zhí)行?docker images?命令,來(lái)看下?docker.io/mysql:5.7?鏡像還在不在:

Docker 查看鏡像信息

可以看到,docker.io/mysql:5.7?鏡像依然存在!

那么,如果某個(gè)鏡像不存在多個(gè)標(biāo)簽,當(dāng)且僅當(dāng)只有一個(gè)標(biāo)簽時(shí),執(zhí)行刪除命令時(shí),您就要小心了,這會(huì)徹底刪除鏡像。

例如,這個(gè)時(shí)候,我們?cè)賵?zhí)行?docker rmi docker.io/mysql:5.7?命令:

Docker 刪除鏡像

從上圖可以看到,我們已經(jīng)刪除了?docker.io/mysql:5.7?鏡像的所有文件層。該鏡像在本地已不復(fù)存在了!

二、通過(guò) ID 刪除鏡像

除了通過(guò)標(biāo)簽名稱來(lái)刪除鏡像,我們還可以通過(guò)制定鏡像 ID, 來(lái)刪除鏡像,如:

docker rmi ee7cbd482336

一旦制定了通過(guò) ID 來(lái)刪除鏡像,它會(huì)先嘗試刪除所有指向該鏡像的標(biāo)簽,然后在刪除鏡像本身。

三、刪除鏡像的限制

刪除鏡像很簡(jiǎn)單,但也不是我們何時(shí)何地都能刪除的,它存在一些限制條件。

當(dāng)通過(guò)該鏡像創(chuàng)建的容器未被銷毀時(shí),鏡像是無(wú)法被刪除的。為了驗(yàn)證這一點(diǎn),我們來(lái)做個(gè)試驗(yàn)。首先,我們通過(guò)?docker pull alpine?命令,拉取一個(gè)最新的?alpine?鏡像, 然后啟動(dòng)鏡像,讓其輸出?hello, docker!:

Docker run alpine

接下來(lái),我們來(lái)刪除這個(gè)鏡像試試:

Docker 刪除鏡像

可以看到提示信息,無(wú)法刪除該鏡像,因?yàn)橛腥萜髡谝盟⊥瑫r(shí),這段信息還告訴我們,除非通過(guò)添加?-f?子命令,也就是強(qiáng)制刪除,才能移除掉該鏡像!

docker rmi -f docker.io/alpine

但是,我們一般不推薦這樣暴力的做法,正確的做法應(yīng)該是:

  • 先刪除引用這個(gè)鏡像的容器;
  • 再刪除這個(gè)鏡像;

也就是,根據(jù)上圖中提示的,引用該鏡像的容器 ID (9d59e2278553), 執(zhí)行刪除命令:

docker rm 9d59e2278553

然后,再執(zhí)行刪除鏡像的命令:

docker rmi 5cb3aa00f899

Docker 刪除鏡像

這個(gè)時(shí)候,就能正常刪除了!

四、清理鏡像

我們?cè)谑褂?Docker 一段時(shí)間后,系統(tǒng)一般都會(huì)殘存一些臨時(shí)的、沒有被使用的鏡像文件,可以通過(guò)以下命令進(jìn)行清理:

docker image prune

它支持的子命令有:

  • -a, --all: 刪除所有沒有用的鏡像,而不僅僅是臨時(shí)文件;
  • -f, --force:強(qiáng)制刪除鏡像文件,無(wú)需彈出提示確認(rèn);

另外,執(zhí)行完?docker image prune?命令后,還是告訴我們釋放了多少存儲(chǔ)空間!

原文鏈接:https://blog.csdn.net/qq_18671415/article/details/116231314

欄目分類
最近更新