Linux
我們什麼時候應該在 Linux 上使用容器化應用程序
我想創建一個 Linux 伺服器,但我被困在一個問題上:
- 如何知道我什麼時候應該為給定的應用程序使用 Docker 或 Lxc 而不是本地安裝它?
例如,在我的伺服器上(可能是 CentOS 最小或 Arch Linux 或 Alpine Linux,具體取決於此問題的答案),我想安裝:
- 蟒蛇 3
- FTP伺服器
- 單核細胞增多症
- PHP
- NGiNX
- Docker(或 Lxc)
- 許多其他應用程序
表演怎麼樣:
- 有或沒有容器,我的伺服器會更快嗎?
- 會不會更安全(CVE 漏洞)
- 會更容易維護(軟體更新)嗎?
裸機(我認為您的本機意思)通常比任何類型的虛擬化/容器化都具有更高的性能,這僅僅是因為硬體、核心和作業系統之間的系統成本較少。
容器將為您提供管理多個作業系統實例(快照、遷移、映像轉儲/備份、資源優先級等)的好處,而不會導致嚴重的性能損失。然而,與完全虛擬化相比,容器化安全確實有一些缺點。
當性能不太受關注時,完整的 VM 將是更好的選擇,因為完全虛擬化通常涉及模擬各種硬體設備。每個虛擬實例都是一個完整的作業系統(硬體直通除外)程序、核心、庫和在其中執行的應用程序。攻擊者通過容器突破完全虛擬化的主機被認為要困難得多,但這種風險/攻擊面會因供應商而異。
如果您沒有進行非常繁重的 I/O 或 CPU 使用,您可能不會看到容器或完整 VM 的性能受到很大影響。例如,對於像軟體測試或編譯節點這樣的軟體測試或編譯節點,容器化將是一個更好的選擇,您希望獲得最佳性能以減少開發提前期,但您仍然希望能夠輕鬆快照或回滾安裝(使用裸機無法輕鬆完成的事情)。
您可能需要對您的軟體堆棧進行一些試驗,但根據您提供的列表,我將使用完全虛擬化來獲得安全性和 VM 管理的所有好處。