簡體   English   中英

如何對PHP應用程序進行Docker化

[英]How to Dockerize a PHP app

我試圖了解通過Docker部署PHP Web應用程序的一般過程。 我有一個在LAMP中開發的Web應用程序。

到目前為止,我了解到我必須首先下載並安裝Docker本身。 之后,我必須安裝Docker Composer。 然后,必須使用Composer創建一個包含我的服務器(Apache)映像的容器。

這就是我感到困惑的地方。 然后我必須為數據庫創建一個容器,為應用程序本身創建一個容器(包含代碼的目錄),還是為服務器和數據庫和應用程序創建一個容器?

我不需要詳細的解釋,僅需要流程背后的一般思想,那么我就可以自行解決其余的問題

謝謝任何能提供幫助的人。

有很多方法,但是簡單的方法是在某些linux機器上安裝docker,編寫一個docker文件來安裝和配置所有必需的組件,例如apache,php,mysql等,然后在容器或容器中獲取應用程序代碼。從主機將其作為外部卷連接。

寫入dockerfile之后 ,您可以使用docker build命令構建docker映像,並且在構建映像之后,可以在本地使用它,也可以將其推送到dockerhub,或者根據需要將其推送到私有docker register。

另一個選擇是,如果您只想測試,則可以從包含LAMP堆棧的 dockerhub中提取一個已經存在的映像 ,然后只需要在Docker上運行該映像,並將您的php應用程序附加到外部卷上即可

當然,要在Docker外部的端口80或443上訪問應用程序,您必須在docker file中或在docker run命令時公開這些端口。

對於測試環境,您可以在一個容器中運行所有服務。

對於較大的部署,可以考慮使用容器編排服務,例如DockerSwarmKubernetes 您也可以從MesoSphere嘗試DC / OS ,方法是從github存儲庫中獲取一個無用的文件,該文件將為您在一台計算機上設置DC / OS。 然后,您可以根據需要在Mesos上啟動任意數量的服務。 它們為服務安裝,容器管理和擴展提供了開箱即用的支持。

最佳做法建議每個進程/服務使用一個Docker容器(一個用於Apache + PHP的容器,另一個用於MySQL的容器,依此類推),但這只是一個准則,並不意味着您不能只擁有一個包含所有內容的容器需要里面。

如果您決定只使用一個容器來運行所有服務,那么僅使用Docker (引擎)就可以了。 在這種情況下,您仍然可以使用Docker Compose ,但實際上並不需要。

當您必須運行多個容器時,Docker Compose更有用。 僅需一個命令,您就可以啟動並運行所有容器。 同樣在這里,您只能使用Docker Engine,但是您需要手動運行每個容器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM