Vmware-Esxi

在虛擬機中執行容器?

  • July 15, 2015

據我了解,容器比虛擬機輕得多,因為它們不會虛擬化硬體,而是將執行在其中的軟體與執行在系統上其他容器中的軟體隔離開來。

我的情況是我買不起額外的伺服器,而我擁有的伺服器都在執行虛擬機管理程序。我需要提供至少 6 個“伺服器”來託管相對較小的 Web 應用程序的實例(每個實例用於不同的客戶)。為這些伺服器中的每一個配置一個新 VM 會很浪費,因此我計劃設置 2 個 VM 並執行以下操作之一:

  1. 使用虛擬主機 (apache) 在每個 VM 上執行應用程序的多個實例。或者
  2. 在虛擬機上設置容器,這樣我就可以隔離環境。

考慮到這一點,是否存在與容器系統相關的不可忽略的成本,這會使在 VM 中使用它們成為一個壞主意,或者是否有任何其他技術原因導致我不想使用容器?

與 VM 相比,Docker 非常輕量級,並且 VM 系統應該可以正常執行容器。每個容器本質上都作為一個隔離系統執行,因此從系統穩定性的角度來看,它非常適合隔離。根據您的描述,這聽起來像是 Docker 的理想案例。如果您確實使用 Docker 進行試驗,請確保您盡可能使用最新版本,一些較舊的版本中存在一些相當嚴重的漏洞。執行 Docker 時有一些安全注意事項。

SELinux - SELinux 是容器感知的,並且會自動為每個容器創建一個隨機命名的 MCS 標籤。這有助於確保隔離,因為 LXC 容器本身並不被認為是真正“包含”的,儘管這種情況正在改善。

USER 指令- 在每個 Dockerfile 中,建議最佳實踐使用 USER 指令並讓使用者以 root 以外的帳戶執行,預設情況下。這裡的問題是使用者必須存在於系統中。對於這個新使用者來說,chowning/chmodding 文件和目錄也可能令人沮喪,但它有助於降低風險。我通常建議您在系統上創建一個“容器使用者”或類似的東西,以幫助確保在不與系統​​的任何其他部分重疊的所有系統上都有一個通用使用者。

否則,最困難的部分是管理容器並在必要時更新它們。

引用自:https://serverfault.com/questions/674432