Docker服務(wù)徹底清空的所有相關(guān)資源(容器、鏡像、網(wǎng)絡(luò)、數(shù)據(jù)卷等的流程
需要徹底清空Docker服務(wù)的所有相關(guān)資源(容器、鏡像、網(wǎng)絡(luò)、數(shù)據(jù)卷等),以下是分步操作指南,涵蓋安全清理和強制清理兩種場景:
一、前置準備:停止所有運行中的容器
首先需要停止所有處于運行狀態(tài)的Docker容器,否則無法刪除運行中的容器,執(zhí)行命令:
# 停止所有運行中的容器(通過docker ps -q獲取所有運行中容器ID) docker stop $(docker ps -q)
如果需要停止所有容器(包括已停止的容器無需操作,此命令僅針對運行中容器,無運行容器時執(zhí)行無副作用)。
二、刪除所有容器
刪除Docker中所有的容器(無論是否處于運行狀態(tài)),釋放容器占用的資源:
# 刪除所有容器(-f 強制刪除,即使容器未停止;docker ps -a -q 獲取所有容器ID) docker rm -f $(docker ps -a -q)
三、刪除所有鏡像
刪除本地存儲的所有Docker鏡像,釋放鏡像占用的磁盤空間(鏡像文件通常占用較大空間):
# 刪除所有Docker鏡像(-f 強制刪除,docker images -q 獲取所有鏡像ID) docker rmi -f $(docker images -q)
注意:如果鏡像被容器(即使是已停止的容器)引用,直接刪除會失敗,步驟二已刪除所有容器,此步驟可正常執(zhí)行。
四、刪除所有自定義網(wǎng)絡(luò)
Docker默認會創(chuàng)建一些內(nèi)置網(wǎng)絡(luò)(bridge、host、none),此命令僅刪除你自定義創(chuàng)建的網(wǎng)絡(luò),不影響內(nèi)置網(wǎng)絡(luò):
# 刪除所有自定義Docker網(wǎng)絡(luò) docker network rm $(docker network ls -q)
補充:如果提示“網(wǎng)絡(luò)正在被使用”,說明還有未刪除的容器引用該網(wǎng)絡(luò),重新執(zhí)行步驟二即可解決。
五、刪除所有數(shù)據(jù)卷(謹慎操作?。?/h2>
數(shù)據(jù)卷是Docker持久化數(shù)據(jù)的核心,此操作會永久刪除所有數(shù)據(jù)卷中的數(shù)據(jù)(如數(shù)據(jù)庫數(shù)據(jù)、配置文件等),無法恢復(fù),請確保已備份重要數(shù)據(jù)后再執(zhí)行:
# 1. 先查看所有數(shù)據(jù)卷(確認需要刪除的卷) docker volume ls # 2. 刪除所有未被使用的數(shù)據(jù)卷(安全選項,不會刪除被容器引用的卷) docker volume prune -f # 3. 強制刪除所有數(shù)據(jù)卷(無論是否被引用,風險極高?。? docker volume rm $(docker volume ls -q)
六、一鍵完整清空(快捷命令)
如果需要快速執(zhí)行所有清空操作(已包含上述所有步驟,謹慎使用,數(shù)據(jù)卷為強制刪除):
# 停止所有容器 → 刪除所有容器 → 刪除所有鏡像 → 刪除所有自定義網(wǎng)絡(luò) → 刪除所有數(shù)據(jù)卷 docker stop $(docker ps -q) && docker rm -f $(docker ps -a -q) && docker rmi -f $(docker images -q) && docker network rm $(docker network ls -q) && docker volume rm $(docker volume ls -q)
七、補充:Docker系統(tǒng)級清理(推薦日常維護)
如果不需要徹底清空,僅需清理無用資源(未被使用的容器、鏡像、網(wǎng)絡(luò)、數(shù)據(jù)卷),推薦使用Docker內(nèi)置的清理命令,安全無風險:
# 清理所有未被使用的Docker資源,執(zhí)行前會有確認提示,添加 -f 可跳過確認 docker system prune -a -f # 說明:-a 表示清理所有無用鏡像(包括未被標簽的鏡像),默認僅清理懸空鏡像;-f 強制執(zhí)行,無需手動確認
驗證是否清空成功
執(zhí)行以下命令,若均無輸出,則說明Docker相關(guān)資源已全部清空:
docker ps -a # 查看所有容器,無輸出即無容器 docker images # 查看所有鏡像,無輸出即無鏡像 docker network ls # 僅保留bridge、host、none三個內(nèi)置網(wǎng)絡(luò)即為正常 docker volume ls # 無輸出即無數(shù)據(jù)卷
總結(jié)
- 核心步驟:停止容器 → 刪除容器 → 刪除鏡像 → 刪除網(wǎng)絡(luò) → 刪除數(shù)據(jù)卷(按順序執(zhí)行更穩(wěn)妥);
- 謹慎操作:數(shù)據(jù)卷刪除會永久丟失數(shù)據(jù),務(wù)必先備份;
- 日常維護:優(yōu)先使用
docker system prune -a清理無用資源,無需徹底清空; - 一鍵命令:適合測試環(huán)境快速重置Docker環(huán)境,生產(chǎn)環(huán)境禁止隨意使用。
到此這篇關(guān)于Docker服務(wù)徹底清空的所有相關(guān)資源(容器、鏡像、網(wǎng)絡(luò)、數(shù)據(jù)卷等的流程的文章就介紹到這了,更多相關(guān)Docker清空所有相關(guān)資源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝Tomcat、MySQL和Redis的步驟詳解
這篇文章主要介紹了Docker安裝Tomcat、MySQL和Redis的步驟詳解,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
Docker查看鏡像的Dockerfile(docker history和docker inspec
這篇文章主要給大家介紹了關(guān)于Docker查看鏡像的Dockerfile的相關(guān)資料,文中主要運用的是docker history和docker inspect命令,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-05-05
dockerfile echo指定文件多行文本的方法實現(xiàn)
這篇文章主要介紹了dockerfile echo指定文件多行文本的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09

