Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
經典的 LNMP(linux + nginx + php + mysql)環境有很多現成的部署腳本,但是在 Docker 盛行的今天,依然有很多同學在如何部署上有一些列問題,所以這篇簡單介紹一下如何使用 Docker 以及 docker-compose 在服務器上部署 php 應用。 (推薦學習:PHP視頻教程)
在 Docker 中安裝部署,直接用他的 Docker 鏡像:
-p 2201:22:為了方便 ssh 登錄容器開放的端口映射,不用也無所謂的,因為可以使用 docker exec
-p 81:8000:主要是將容器的 8000 端口(phpmsf 默認監聽端口)映射出來,這個端口可以改,根據改的端口
-v :主要是為了開發時間方便文件映射,/home/worker/data/www/ 是默認的 web 文件目錄,根據改的目錄
$ docker run -dit --name phpmsfdemo -p 2201:22 -p 81:8000 -v /data/webroot/:/home/worker/data/www/ registry.cn-hangzhou.aliyuncs.com/pinguo-ops/php-msf-docker
php-msf 的鏡像運行的容器中,php 的運行環境
部署代碼
容器部署成功之后,可以在容器中直接部署代碼。
直接安裝代碼使用的是 php-msf-docker,里面有一個 installer.php,運行這個文件,可以直接下載框架和應用的目錄。
比如進入容器中,首先 git clone php-msf-docer,比如我 clone 到 /home/worker/data 這個文件夾。
$ git clone https://github.com/pinguo/php-msf-docker.git
進入 php-msf-docker,運行 installer.php:
$ php installer.php start
然后會選擇安裝目錄和應用名稱等,之后會配置成功:
配置成功會默認啟動,如果不默認啟動則可以進入目錄手動啟動:
手動啟動進入安裝的目錄即可,然后運行 server 即可:
$ php server.php start