最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決誤刪docker目錄/var/lib/docker/overlay2,導致容器build失敗問題

 更新時間:2025年10月24日 09:03:46   作者:尤達c  
文章介紹了Docker的overlay2存儲驅動,解釋了其分層存儲機制和節(jié)省空間的方式,刪除/var/lib/docker/overlay2目錄下的文件導致容器無法啟動,通過重啟Docker并使用`docker?system?prune`和`docker?system?prune?-a`命令可以清理不必要的鏡像、容器和網(wǎng)絡,釋放磁盤空間

服務器磁盤滿了,查看本地docker目錄下占用太多,需要清除下不用的文件騰出資源,刪除了/var/lib/docker/overlay2 下的文件,導致重新啟動容器失敗,啟動新容器例如hello-world也失敗

docker的overlay2存儲的是什么?為什么能有這么大的占用

查詢官方說明,overlay2是docker使用的文件存儲驅動,也就是說,在/var/lib/docker/overlay2目錄下的文件都是docker使用的存儲

overlay2是分層存儲,每一層通過本層的md5作為文件夾名來命名,如果要存儲的兩個東西【比如兩個鏡像】的底層幾層的內(nèi)容是一樣的,那他們的md5就也是一樣的,通過md5核驗,確認他們這幾層是一樣的之后,在overlay2中實際存儲的時候,這幾層就可以只存儲一份,然后由這兩個東西共用,來達到節(jié)省空間的目的。

/var/lib/docker/overlay2 目錄是 Docker 存儲驅動程序之一

  • Overlay2 的默認存儲目錄,用于保存 Docker 容器鏡像和容器數(shù)據(jù)。
  • Overlay2 是一個基于內(nèi)核的圖層存儲驅動程序,可以通過將多個只讀層疊加到單個可寫層來創(chuàng)建 Docker 容器。
  • Overlay2 驅動程序使用了基于 inode 的存儲模型,它將不同的圖層都掛載到相同的文件系統(tǒng)目錄下,同時使用不同的命名空間來進行隔離。

在 /var/lib/docker/overlay2 目錄下,每個容器都對應一個文件夾,文件夾的名稱是由兩個長隨機字符串組成的,每個字符串對應一個不同的命名空間。其中一個字符串對應于 Overlay2 驅動程序的命名空間,它用于標識這個容器的圖層;另一個字符串對應于掛載點的命名空間,用于在宿主機文件系統(tǒng)中創(chuàng)建一個目錄,用于掛載這個容器的可寫層。

每個容器的文件夾中包含多個子目錄,其中最重要的是 diff 目錄,它用于存儲容器的可寫層。當 Docker 容器需要修改文件時,Overlay2 驅動程序會將這些修改記錄在 diff 目錄下的文件中。除了 diff 目錄,每個容器的文件夾中還包含 merged 目錄、lowerdir 目錄和 upperdir 目錄,用于存儲容器的只讀層和可寫層。

具體來說:

當 Docker 運行容器時,它會在 /var/lib/docker/overlay2 目錄下為容器創(chuàng)建一個唯一的文件夾,其中包含了容器的文件系統(tǒng)的層級結構。

該文件夾的名稱以 l 開頭,后跟 64 個字符的十六進制字符串,這個字符串是該容器的唯一 ID,例如:

/var/lib/docker/overlay2/l4j4t4c3k3ck0ec13c4a5798d274b16523e86029292bfb9bb9c4a4a4c3d0e4b4

在這個目錄中,Overlay2 存儲了容器的所有文件系統(tǒng)層。

當容器啟動時,Docker 會將這些層級結構組合在一起,形成容器的完整文件系統(tǒng),使其看起來像是一個完整的文件系統(tǒng),而實際上是由多個層級結構組合而成的。

解決辦法

重啟docker

systemctl restart docker

然后啟動一個容器試試

如果問題不能完美解決

  • ps: 如果不重啟docker 還是會同樣報錯
  • ps:也可以將docker系統(tǒng)目錄/var/lib/docker/下的overlay2文件夾,整個刪掉,再重啟docker后,會自動創(chuàng)建出新的overlay2文件夾目錄,里邊存放所必須的文件。這個時候重新run容器就會成功

如何清理docker磁盤占用

docker system df # 可查看 Docker 所占用的空間:

其中 Images 表示鏡像,Containers 表示容器,Local Volumes 表示本地卷,Build Cache 表示構建緩存。 

整體清理

可以通過 docker system prune 進行一次空間清理:

WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all dangling build cache

Are you sure you want to continue? [y/N]

該操作會刪除所有停止的容器,所有未被至少一個容器使用的網(wǎng)絡,所有的 dangling 鏡像(在構建鏡像時產(chǎn)生的 tag 為 none 的鏡像,沒有和任何其他有 tag 的鏡像有關聯(lián)),所有的 dangling 構建緩存(和 dangling 鏡像同理)。

更激進一點,還可以執(zhí)行 docker system prune -a,該操作還會刪除沒有和運行中的容器有關聯(lián)的鏡像。

docker system prune -a # 

我們看到目錄下被清空了

  • 鏡像清理:
docker rm <image_name> [-f]
  • 容器清理:
docker container rm <containerid_or_name>
  • 網(wǎng)絡清理:
docker network ls
docker network rm <net_work_name>
  • 數(shù)據(jù)卷清理:
docker volume ls
docker system prune -a --volumes # 是在 docker system prune -a的基礎上刪除所有未使用的卷。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Docker鏡像大小查看和排序方法小結

    Docker鏡像大小查看和排序方法小結

    在 Docker 日常使用中,隨著鏡像數(shù)量的增加,磁盤空間管理變得尤為重要,了解如何有效地查看和排序 Docker 鏡像大小不僅可以幫助我們釋放寶貴的磁盤空間,還能優(yōu)化容器的構建和部署流程,所以本文給大家總結了Docker鏡像大小查看和排序方法,需要的朋友可以參考下
    2025-05-05
  • 如何解決docker commit后鏡像越來越大問題

    如何解決docker commit后鏡像越來越大問題

    解決Docker Commit后鏡像變大問題的方法:方法1直接打包容器并導入為鏡像;方法2將容器根目錄文件壓縮后導入為鏡像,方法1更優(yōu),在其他設備運行時可能出現(xiàn)內(nèi)存不足錯誤
    2025-03-03
  • 搭建docker內(nèi)網(wǎng)私服的方法(docker-registry with nginx&ssl on centos)

    搭建docker內(nèi)網(wǎng)私服的方法(docker-registry with nginx&ssl on centos)

    這篇文章主要介紹了搭建docker內(nèi)網(wǎng)私服的方法(docker-registry with nginx&ssl on centos),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • docker下遷移elasticsearch問題以及解決方案

    docker下遷移elasticsearch問題以及解決方案

    文章描述了如何將Elasticsearch數(shù)據(jù)從一個服務器遷移到另一個服務器,包括數(shù)據(jù)掛載、版本一致性、啟動命令的匹配以及可能遇到的權限和節(jié)點故障問題的解決方法
    2024-11-11
  • 使用 Docker 部署 GitLab 并持久化數(shù)據(jù)的實例步驟

    使用 Docker 部署 GitLab 并持久化數(shù)據(jù)的實例步驟

    本文將詳細介紹如何使用 Docker 部署 GitLab,并將數(shù)據(jù)(如倉庫、配置、日志等)持久化到主機磁盤,我們還將解決常見的端口沖突問題,并介紹如何從另一臺 GitLab 恢復數(shù)據(jù)到新的 GitLab 實例,感興趣的朋友一起看看吧
    2025-05-05
  • docker如何查看容器啟動命令(已運行的容器)

    docker如何查看容器啟動命令(已運行的容器)

    Docker是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的Linux機器上,下面這篇文章主要給大家介紹了關于docker如何查看容器啟動命令(已運行的容器)的相關資料,需要的朋友可以參考下
    2023-02-02
  • 完美解決docker安裝mysql后Navicat連接不上的問題

    完美解決docker安裝mysql后Navicat連接不上的問題

    這篇文章主要介紹了完美解決docker安裝mysql后Navicat連接不上的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • docker容器重啟錯誤的解決方案

    docker容器重啟錯誤的解決方案

    本文主要介紹了docker容器重啟錯誤的解決方案,詳細的介紹了docker 重啟錯誤的原因及其解決方法,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • docker部署code-server的方法

    docker部署code-server的方法

    這篇文章主要介紹了docker部署code-server的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • docker私有倉庫harbor搭建過程

    docker私有倉庫harbor搭建過程

    這篇文章主要介紹了docker私有倉庫harbor搭建過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06

最新評論

墨脱县| 河北省| 武隆县| 连山| 宜良县| 额尔古纳市| 宁明县| 信阳市| 靖边县| 绍兴市| 丹寨县| 嘉义市| 泰和县| 新野县| 阿瓦提县| 宣汉县| 敖汉旗| 通城县| 灵石县| 栖霞市| 剑河县| 惠来县| 嘉黎县| 沧源| 鹤岗市| 启东市| 永安市| 湘潭市| 长丰县| 景谷| 祁阳县| 蓬溪县| 逊克县| 班玛县| 镇宁| 门源| 乌鲁木齐县| 襄樊市| 张北县| 长沙县| 循化|