之前接手人社網站的時候被環境搞過 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 開發的日常都靠它
環境再髒都不怕 砍掉重開就好