本篇文章是一個技術探討文,探討 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
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
linux docker指令 在 OSSLab Geek Lab Facebook 的最讚貼文
在Apple M1測試 Docker 安裝 開源ERP odoo心得
第一先裝了這個 M1 docker 預覽版
https://docs.docker.com/docker-for-mac/apple-m1/
裝好後照軟體下指令
就先裝好了 Docker Developer Preview for M1
參考 https://hub.docker.com/_/odoo
安裝odoo 14 docker
docker pull odoo --platform linux/amd64
(正常x86不用加 --platform linux/amd64)
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10
docker run -p 8069:8069 --name odoo --link db:db -t odoo
打開本機browser 8069 就可以跑odoo了
說真的 docker團隊還願意讓docker 從 HyperKit 換到macOS Big Sur的API Framework Virtualization.
所以可以跑x86 image 容器.但M1都有不少效能折損了
假設換成raspberry pi開發板,就只能限定用arm image(這樣限制不少)
所以必備一台x86 小電腦應用於docker 是很有用的.
https://osslab.tv/shop/acute_angle_mini_pc/
linux docker指令 在 矽谷牛的耕田筆記 Facebook 的精選貼文
這邊來跟大家分享一下 Docker 網路入門系列文第二篇
該篇文章會一步一步的去探討原生 Docker Bridge 模型到底會做什麼事情,每個步驟如何自己透過 Linux 指令來完成。
本篇文章著重於如何打造一個可以讓容器互通的網路模型,本身還沒有涉入過多關於 iptables 等能夠讓容器存取外網能力的介紹,這部份會於第三篇文章再來仔細介紹
有興趣的人歡迎看看這篇文章,不吝指教
https://www.hwchiu.com/docker-network-model-lab.html