
我大約在一年前在某個地方讀到,使用 Docker 容器可以使伺服器更加穩定,因為故障的應用程式會導致容器而不是主機作業系統崩潰。
據我所知,應用程式無法自行使作業系統崩潰,他們需要一些核心、驅動程式或硬體錯誤才能做到這一點。
Docker 虛擬化能否防止主機作業系統崩潰?
答案1
虛擬化不能防止主機作業系統崩潰,但可能有助於降低風險因素。
Docker只不過是一個將系統呼叫從虛擬化程式轉換到主機作業系統的介面。因此,一個或多個呼叫的組合仍然可能會遇到作業系統錯誤並使其崩潰。
透過這種方式,Docker 比傳統虛擬機器更容易導致此類問題,因為虛擬化程式在Docker 下的隔離性較差,儘管在Docker 下發生這種情況的可能性可能比直接在作業系統上執行時要小一些,因為呼叫會進行通過兩個接口而不是一個接口,因此需要進行雙重檢查。
Docker確實對虛擬化程式設定了一些限制,例如最大RAM和CPU,這可能有助於避免系統因過載和資源飽和而崩潰。它還會對虛擬化程式隱藏主機的檔案系統(總是可能出現異常),從而避免程式對其進行損壞。