本篇文章是一個技術探討文,探討 Docker 是如何使用硬碟空間以及當維運人員發現空間不足時應該要如何清理系統上的空間。
Docker 的便利使用方式使得開發人員可以非常簡的透過的 Container 的概念來運行各式各樣的應用程式,這中間牽扯包含 Image 的建置,抓取以及透過其產生出一個運行的 Container。
隨者時間愈用愈久,系統內可用的空間也會愈來愈少,這時候可以透過 docker system df 來觀看一下目前系統上的空間資訊,主要包含下列四種類型,而每個類型也會包含目前使用量以及可以回收的量有多少
1. Images
2. Containers
3. Local Volumes
4. Build Cache(只有 docker 18.09 後使用 buildkit 才會有)
當 Contaienr 被創建時, /var/lib/docker 底下會有很多檔案以及資料夾都被創建出來,譬如
- /var/lib/docker/containers/ID (資料夾):如果 container 使用的是預設的 logging driver,則 log 檔案都會以 JSON 的格式存放於這個資料夾底下。
所以要注意,當 contaienr 有太多 log 時,其會透過這個方式影響節點檔案系統的容量
- /var/lid/docker/overlay2 (資料夾): 這邊包含了 containers 本身的 read-write layer 的檔案,大部分 Linux 發行版預設都會使用 overlay2 來管理。此外 contaienr 內如果有存放任何額外檔案於系統中,實際上都會放這節點上的這個資料夾內。
接下來作者透過一個實際的範例,讓一個全新的 contaienr 內透過 dd 指令來產生一些檔案,並且觀察上述資料夾的變化以及 docker system df 的結果,最後介紹 docker prune 以及 docker rm 針對 contaienr 的處理。
關於 image 的部分,除了常規使用的 Image 外,還有
1. Dangling images: 不再被參考使用的 image,譬如 ID/Tag 都是 None 的
這邊可以透過 docker image ls -f dangling=true 的指令
文章後半部分還有介紹 docker volume 以及 build cache 的部分,這篇文章非常推薦大家閱讀,除了基本使用外還會介紹底層 docker 實際上用到的資料夾,有了這些概念未來對於如何清除 docker 環境就會更有概念,知道要刪除哪些資料夾以及為什麼要刪除。
https://betterprogramming.pub/docker-tips-clean-up-your-local-machine-35f370a01a78
「logging linux」的推薦目錄:
- 關於logging linux 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於logging linux 在 台灣企業儲存技術論壇 Facebook 的最讚貼文
- 關於logging linux 在 linux-system-roles/logging - GitHub 的評價
- 關於logging linux 在 Azure Web App with Linux Logging not works - Stack Overflow 的評價
- 關於logging linux 在 Linux - 查看Log 的指令tail、multitail、less - Kucw's Blog 的評價
- 關於logging linux 在 system log stop logging - Unix & Linux Stack Exchange 的評價
logging linux 在 台灣企業儲存技術論壇 Facebook 的最讚貼文
早安,朋友們!#我是小編盧比,今天 #假日讀書時間 這則新聞很有趣。
如果依照很多媒體愛用的標題殺人法,那麼這篇文章的標題應該就會是:
「快閃記憶體使特斯拉無法充電」
「驚!快閃記憶體故障 特斯拉天價修理費」
「快閃記憶體恐使特斯無法充電」
哈哈哈⋯⋯小編是不是有當新聞記者的天份⋯⋯
不過還是算了,網友們對現在的新聞記者是沒什麼太高評價的;小編乖乖在本粉絲團當專頁(業)義工,至少還可以學點真實的本事!
回到這則新聞內容,根據 InsideEVs 網站,早期的特斯拉電動車曾經因為快閃記憶體而造成車子無法充電的囧況,當然這隻大蟲早就被除掉了,現在的特斯已經沒有這樣的問題囉⋯⋯
起因是在車子裡的媒體控制單元 (Media Control Unit, MCU),這是一張配備 8GB eMMC 的小型電腦,運行 Linux(不是 Windows、不是 Windows、不是 Windows)。不知道什麼原因,某位工程師決定開啟 Linux 的 logging 功能⋯⋯所以,system log 就會不斷的長大,一年就要 1GB 的空間。
新聞裡是說因為快閃記憶體的耗損 (wear out),就是 log 不斷長大、不斷刪除,最後使 eMMC 耗損而無法再寫入任何資料。但小編猜應該純粹就是因為 log 太大,佔據了所有的系統空間,導致新聞裡提到的沒有足夠空間來讓 firmware 升級。既然是不知為什麼開啟 logging,那就不會想到要清除它,這也是合理的。不管是哪一種,反正最後就是 eMMC 無法再寫入資料,Linux 就美叮美噹,不能升級、也不能充電。
從 IT 的角度看,這根本就不算是什麼大問題;但對汽車工業或是其它類似的工業來說,這就是大問題。就是沒有請真正懂 storage (IT) 的專家加入嘛,而且老實說啊,作業系統開 logging 是很合理的,畢竟這是 debug 時很重要的資料,人家 iOS 也有開 logging 啊,這麼多年也沒出什麼問題。
所以,以前使用磁碟機 30 年,可能都不會造成任何跟資料儲存有關的問題,改用快閃記憶體後,有可能就會造成問題。而且,未來更新的、更便宜的快閃記憶體,耗損次數是更低的,如果只貪便宜,問題可能會更大。
logging linux 在 Linux - 查看Log 的指令tail、multitail、less - Kucw's Blog 的推薦與評價
Linux - 查看Log 的指令tail、multitail、less. By kucw 2018/07/25 Linux. tail -f catalina.log : 實時看log,會自動把新增的log直接顯示出來. ... <看更多>
logging linux 在 linux-system-roles/logging - GitHub 的推薦與評價
An ansible role which configures logging. Contribute to linux-system-roles/logging development by creating an account on GitHub. ... <看更多>