我試圖了解 docker 如何在可擴展 symfony 應用程式的生產中作業。假設我們從一個基本的 LAMP 堆疊開始:
- 阿帕奇容器
- php容器
- mysql 容器
根據我的研究,一旦創建了我們的容器,我們就會將它們推送到注冊表(docker 注冊表)。對于生產,編排器將負責創建 PODS(在 kubernetes 的情況下),并將呼叫我們上傳到注冊表的影像。
我理解對嗎?我們是否在注冊表中推送 3 個單獨的影像?
uj5u.com熱心網友回復:
讓我澄清幾點:
將它們推送到注冊表(docker 注冊表)
您可以將它們推送到 docker 注冊表,但是,根據您公司的政策,這可能是不允許的,因為 dockerhub(docker 的注冊表)托管在互聯網上的某個地方,而不是您的公司。出于這個原因,許多企業部署了自己的注冊表,例如JFrog 的 artifactory。
對于生產,編排器將負責創建 PODS(在 kubernetes 的情況下)
好吧,您必須告訴編排器他需要創建什么,在 Kubernetes 的情況下,您將需要撰寫一個 YAML 檔案來描述您想要的內容,然后它將負責創建。
擁有編排器不僅適用于生產。理想情況下,您希望有一個與生產環境盡可能相似的臨時環境。
將呼叫我們上傳到注冊表的影像
那可能需要配置。如上所述,dockerhub 并不是唯一的注冊表,但最終您需要確保以某種方式連接到注冊表以拉取您推送的影像。
我們是否在注冊表中推送 3 個單獨的影像?
您可以這樣做,但是,我不建議您這樣做。盡管容器可能已經變得很好,但它們也有缺點。它們最大的缺點之一仍然是有狀態應用程式(閱讀本文以了解有狀態與無狀態之間的區別)。盡管可以在容器中包含有狀態應用程式(例如 MySQL)并使用 Kubernetes 之類的東西對其進行編排,但不建議這樣做。容器應該是短暫的,例如,它不適用于資料庫。出于這個原因,我不建議將您的資料庫放在容器中,而是使用虛擬機甚至是物理機。
關于 PHP 和 Apache:這兩個影像可能有 2 個單獨的影像,但老實說,這樣做并不值得,因為有些影像已經將它們組合在一起了。在PHP官方影像具有版本的Apache的包括,更好地利用和保存自己的一些維護作業。
最后我想說的是,您不能簡單地從虛擬/物理服務器中取出所有內容,將其放入容器中并期望它像以前一樣作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/322530.html
