我有多個Linux伺服器,不論是VPS還是樹莓派亦或是x86主機,我認為所有跑在Linux Server上的服務都應該要是container而非systemd service,除了SSH以外。
從幾年前用Arch Linux的時候就養成了這個習慣吧。在資源有限的硬體環境,如樹莓派和1C1G VPS,我會使用container取代VM。
覺得有點矛盾的一點是,不論是在我自己的樹莓派還是VPS,我都會用Docker部署服務,連DNS Server與Cloudflare Tunnel這些都是如此。
因為這建基一個假設與恐懼:部署一個服務所需要的依賴會互相衝突,破壞系統穩定性,所以應該容器化。比如如果多個程式用到不同版本的PHP,系統就會發生衝突。
此外,系統的容器服務應該是給Docker daemon統一管理,Systemd就在旁邊看就好了。我不是很喜歡Podman Quadlets的做法,很醜。
要上K8S還是Cluster嗎?可是我家又不是資料中心!Container就夠管理了吧!這是減少系統維護與減少複雜度與之間取得的平衡。
但是我的Server系統都是選取穩定的Debian來用,不太可能安裝軟體就炸,用The Unix Way,也就是安裝二進位檔去部署系統其實也是沒問題的才對。若是用Arch Linux,也根本不用擔心軟體版本太舊的問題。什麼都要Container的系統反而應該選用immutable distro才對。要是我用BSD系統當伺服器的話就不可避免的只能用The Unix Way了!但Linux用習慣了沒什麼動機換掉。
我想純粹是我太懶了,Docker包裝好的服務寫個docker-compose就能快速上線,不用安裝一堆依賴。然後用Portainer網頁面板就能管理。


