如何使用 Docker 將應用程序與底層作業系統更改隔離開來
我不是 docker 使用者,只是想知道這是否是 docker 的準確案例。
目前狀態
我們在 RHEL/VMware 上部署自定義 Java 應用程序。為了正常執行,應用程序依賴於本地 Java 執行時、Tomcat、本地使用者帳戶、啟動/停止腳本和環境設置,所有這些都必須提前在機器上安裝和配置。
問題:RHEL 升級/維護
定期的作業系統維護會破壞環境,有時是 Tomcat,有時是 Java,但主要是本地使用者帳戶和權限,迫使我們呼叫 SA 來解決問題;這是一個主要的 PITA。
問題
我們是否可以使用 docker 容器來封裝我們的 Java 應用程序及其依賴項(Java 執行時、Tomcat、使用者帳戶、本地設置等),這樣我們就可以免於未來對底層作業系統的維護?在這種情況下,docker 容器,而不是 Java WAR/JAR 文件,成為主要的部署工件,對嗎?
這是我對 docker 的理解,如果沒有意義,請原諒我的無知:-D
我是一名 VMware vSphere 管理員,我將 docker 視為一種威脅(如果容器取代了虛擬機,可能會讓我失去工作)和機會(畢竟它是一種虛擬化技術,所以也許我們可以將其作為我們產品組合的一部分並將其作為服務提供)。
但是對於您的問題:是的,docker 容器將成為主要的部署工件。
但請考慮一下這意味著什麼。Java、Tomcat 等更新是有原因的,通常是為了解決嚴重的安全問題。如果您將應用程序的所有依賴項放在 docker 容器中**,您將負責所有安全更新**。目前,您的運營團隊負責為 Java、Tomcat 和所有這些東西部署安全更新檔。使用 docker ,您必須使用更新重建容器(不是那麼難,但您必須這樣做)並重新部署它。所以你畢竟會有停機時間:停止並刪除舊容器,部署並啟動新容器。
當然,您可以忽略任何安全更新並拒絕發布更新檔…我想知道您的 IT 安全對此會說什麼。