優(yōu)雅地刪除Docker容器與鏡像的具體步驟
引言
在使用 Docker 進(jìn)行容器化管理時(shí),隨著時(shí)間的推移,鏡像和容器會(huì)不斷累積,占用大量存儲(chǔ)空間。如果不及時(shí)清理,它們可能會(huì)影響系統(tǒng)的運(yùn)行效率。為了保持系統(tǒng)的整潔與高效,了解如何安全、高效地刪除鏡像和容器是每位 Docker 用戶必備的技能。
本文將詳細(xì)介紹 Docker 中鏡像和容器的區(qū)別,如何刪除它們,以及如何優(yōu)雅地進(jìn)行這些操作。
鏡像與容器的區(qū)別
在 Docker 中,鏡像(Image)和容器(Container)是兩個(gè)核心概念,它們分別扮演著不同的角色:
- 鏡像:Docker 鏡像是一個(gè)靜態(tài)文件,包含了構(gòu)建和運(yùn)行容器所需的所有內(nèi)容??梢詫⑵淅斫鉃閼?yīng)用程序的打包模板,通過(guò)鏡像可以創(chuàng)建多個(gè)容器實(shí)例。
- 容器:容器是鏡像的運(yùn)行實(shí)例,是鏡像在 Docker 中的具體實(shí)現(xiàn)。容器可以隨時(shí)啟動(dòng)、停止和刪除,每個(gè)新容器都會(huì)基于指定的鏡像創(chuàng)建。
簡(jiǎn)單來(lái)說(shuō),鏡像是一個(gè)應(yīng)用的模板,而容器則是這個(gè)模板的運(yùn)行副本。
刪除容器和鏡像的具體步驟
1. 刪除容器
容器在 Docker 中占用系統(tǒng)資源,運(yùn)行不再需要的容器會(huì)浪費(fèi)存儲(chǔ)空間。因此,定期清理無(wú)用容器是非常重要的。以下是刪除容器的步驟:
步驟 1:查看當(dāng)前運(yùn)行的容器
首先,可以使用 docker ps 命令查看所有正在運(yùn)行的容器。這會(huì)顯示一個(gè)表格,包含容器 ID、鏡像名稱、啟動(dòng)命令、創(chuàng)建時(shí)間和當(dāng)前狀態(tài)等信息。
docker ps
示例輸出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d0b4c3e8 myapp:latest "/bin/bash" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp my_app
在此示例中,容器 ID 為 d0b4c3e8 的容器正在運(yùn)行。刪除容器時(shí),我們可以只使用 容器 ID 的前三位,如 d0b。
步驟 2:停止容器
使用 docker stop 命令停止容器。停止容器后,容器的狀態(tài)將從“Up”變?yōu)?ldquo;Exited”,意味著它已停止運(yùn)行,但仍然存在于系統(tǒng)中。
docker stop d0b
停止后,可以再次運(yùn)行 docker ps,確認(rèn)容器是否已停止。此時(shí),如果使用 docker ps,將不會(huì)看到該容器,因?yàn)樵撁顑H列出正在運(yùn)行的容器。
步驟 3:刪除容器
停止容器后,使用 docker rm 命令徹底刪除該容器。此命令僅刪除指定的容器,不會(huì)影響其他容器的運(yùn)行。
docker rm d0b
成功執(zhí)行后,該容器將被從 Docker 系統(tǒng)中徹底移除。如果您想查看所有容器(包括已停止的容器),可以使用以下命令:
docker ps -a
此命令會(huì)列出所有容器,包括已退出的容器,以便檢查和確認(rèn)。
2. 刪除鏡像
每個(gè)容器都是基于鏡像啟動(dòng)的,鏡像包含了操作系統(tǒng)、應(yīng)用程序、依賴及配置等內(nèi)容。刪除不再需要的鏡像可以釋放系統(tǒng)空間。刪除鏡像前,確保沒(méi)有容器正在使用該鏡像。
步驟 1:查看鏡像列表
使用 docker images 命令查看當(dāng)前系統(tǒng)中的所有鏡像,輸出包括鏡像 ID、名稱、標(biāo)簽、創(chuàng)建時(shí)間和大小等信息。
docker images
示例輸出:
REPOSITORY TAG IMAGE ID CREATED SIZE myapp latest b76e2f4b 2 days ago 500MB ubuntu 20.04 a78b2c1d 3 weeks ago 70MB
在上面的示例中,鏡像 ID 為 b76e2f4b 的鏡像對(duì)應(yīng)應(yīng)用 myapp:latest。我們可以使用鏡像 ID 的前三位(如 b76)來(lái)指定要?jiǎng)h除的鏡像。
步驟 2:刪除鏡像
確保沒(méi)有運(yùn)行中的容器依賴該鏡像后,可以使用 docker rmi 命令刪除指定的鏡像。
docker rmi b76
成功執(zhí)行后,Docker 將從系統(tǒng)中移除該鏡像。如果該鏡像被多個(gè)容器引用,您需要先停止并刪除相關(guān)容器,然后再刪除鏡像。
3. 刪除所有容器和鏡像
如果你要徹底清空 Docker 中所有容器和鏡像,可以按以下步驟操作:
- 停止所有運(yùn)行中的容器
docker stop $(docker ps -aq)
- 刪除所有容器(無(wú)論是否運(yùn)行)
docker rm $(docker ps -aq)
- 刪除所有鏡像(包括懸空鏡像)
docker rmi $(docker images -aq) -f
4.(可選)清理構(gòu)建緩存和無(wú)用數(shù)據(jù)
docker system prune -a --volumes
這會(huì)刪除所有容器、鏡像、網(wǎng)絡(luò)、卷,請(qǐng)確保你不再需要它們。
如果你只想刪除特定鏡像或容器,請(qǐng)用 docker ps -a 和 docker images 查看后再手動(dòng)刪除。
執(zhí)行完后,你可以用以下命令確認(rèn)是否清空成功:
docker ps -a docker images
如果輸出為空,說(shuō)明已徹底清空。
使用 1Panel 管理鏡像和容器
如果您希望更直觀地管理 Docker 容器和鏡像,可以考慮使用 1Panel 這樣的一體化管理工具。1Panel 提供了圖形化界面,可以方便地查看、啟動(dòng)、停止、刪除容器和鏡像,極大地簡(jiǎn)化了 Docker 管理操作,非常適合不熟悉命令行操作的用戶。

小結(jié)
優(yōu)雅刪除容器的流程
- 停止容器:優(yōu)雅地停止容器的運(yùn)行。
- 刪除容器:容器停止后,再進(jìn)行刪除操作。
優(yōu)雅刪除鏡像的流程
- 停止容器:首先停止基于該鏡像運(yùn)行的所有容器。
- 刪除容器:確保容器已停止后,進(jìn)行容器刪除。
- 刪除鏡像:容器刪除后,再刪除鏡像。
通過(guò)以上步驟,您可以有效地管理和清理 Docker 容器與鏡像,釋放寶貴的系統(tǒng)資源。
以上就是優(yōu)雅地刪除Docker容器與鏡像的具體步驟的詳細(xì)內(nèi)容,更多關(guān)于刪除Docker容器與鏡像的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決Mac Docker x509證書(shū)的問(wèn)題
這篇文章主要介紹了解決Mac Docker x509證書(shū)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Docker制作Python運(yùn)行環(huán)境基礎(chǔ)鏡像的方法步驟
這篇文章主要介紹了Docker制作Python運(yùn)行環(huán)境基礎(chǔ)鏡像的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn)
維清理鏡像是通過(guò)命令?docker?rm?i?刪除鏡像的,但是這條命令不會(huì)刪除docker?build命令產(chǎn)生的緩存文件,本文主要介紹了Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12
Docker部署SpringBoot應(yīng)用的實(shí)現(xiàn)步驟
本文主要介紹了Docker部署SpringBoot應(yīng)用,Docker可以巧妙的解決函數(shù)庫(kù)、依賴沖突問(wèn)題,具有一定的參考價(jià)值,感興趣的可以了解一下2021-11-11
在docker中執(zhí)行l(wèi)inux shell命令的操作
這篇文章主要介紹了在docker中執(zhí)行l(wèi)inux shell命令的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Windows下使用Docker部署Qdrant向量庫(kù)鏡像服務(wù)詳細(xì)教學(xué)
在?Windows?系統(tǒng)上直接安裝?Qdrant?服務(wù)環(huán)境時(shí),可能會(huì)因?yàn)橐蕾嚮驒?quán)限等問(wèn)題導(dǎo)致安裝失敗,這時(shí)可以借助?Docker?容器來(lái)部署?Qdrant?服務(wù),下面就跟隨小編一起來(lái)看看具體操作步驟吧2025-06-06
解決Docker安裝錯(cuò)誤failure:repodata/repomd.xml from docke
在使用yum命令安裝docker或其他工具時(shí)可能會(huì)遇到failure_repodata_repomd.xmlfromdocker-ce-stable_[Errno256]Nomoremirrorstotry的錯(cuò)誤,原因可能是yum源配置問(wèn)題,解決方法包括重置yum源,刪除多余的repo文件2024-11-11
Docker數(shù)據(jù)管理之Volume與Bind?Mount的核心技術(shù)詳解
這篇文章主要為大家詳細(xì)介紹了Docker數(shù)據(jù)持久化的兩種核心技術(shù),主要是Volume(數(shù)據(jù)卷)和Bind?Mount(綁定掛載),有需要的小伙伴可以了解下2026-05-05
創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法
這篇文章主要介紹了創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
Docker執(zhí)行DockerFile構(gòu)建過(guò)程指令解析
這篇文章主要為大家介紹了Docker執(zhí)行DockerFile構(gòu)建過(guò)程及DockerFile的指令解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪<BR>2022-04-04

