Skip to main content
All articles
·1 min read·
工程Linux

手搓一個 container filesystem

跟著 iximiuz labs 從零拼出一個 container 順便推一下 OrbStack

之前接手人社網站的時候被環境搞過 package dependency 雜亂到救不回來 光是把專案跑起來就耗掉大半時間 從那之後開發都偏向用 container 環境髒了砍掉重開就好

不過 container 用歸用 底層到底是什麼 一直沒真的搞懂

手搓一遍

找到 iximiuz labs 的這篇 tutorial 不用 Docker 用 unshare 跟 mount namespace 加 pivot_root 一步步從零拼出一個 container filesystem

環境直接在瀏覽器裡開好 跟著做就對了 從隔離 mount table 開始 到把 /proc /dev /sys 掛齊 最後真的跑起一個完整的 container

動手做才真的懂

這些概念以前不是沒看過 namespace 隔離 pivot_root 換 root 但看過跟做過是兩回事 自己一步步搞完才真的有感

container 說到底就是 namespace 加 mount 這些東西拼起來的 懂了底層之後 遇到 container 的怪問題 大概知道要往哪裡找了

順便推一下 OrbStack

Mac 上跑 container 的話 推 OrbStack 拿來取代 Docker Desktop 快很多也不吃資源 現在 container 開發的日常都靠它

環境再髒都不怕 砍掉重開就好