怎么使用Docker搭建PHP開發環境呢?


在Docker流行之前,要搭建開發環境通常有兩種選擇:一種是使用wamp、xampp、mamp等集成開發環境安裝包,另外一種就是使用普通虛擬機來安裝linux服務器,然后通過下載一鍵安裝包(如:lnmp)或者逐個安裝做需要的軟件。前者雖然簡單,但太不靈活,想要安裝額外的軟件或者版本會很麻煩或者干脆不知道如何下手;后者除了費時費力,占用本機資源過多,可能會導致系統運行緩慢,而且如果你忘了及時生成快照,一旦失誤,追悔莫及。

幸好,Docker來了!它簡單易用,靈活多變,方便迅捷,掃除了以上種種弊端。如果你想稍微詳細的認識下這位虛擬化界的明星,傳送門( 快速理解Docker )。

安裝Docker

平時開發的環境一般都是Mac或者windows,Linux暫時沒有研究,所以接下來只針對前兩者寫下步驟,這兩個平台,官方都推薦了兩種安裝方式:app和工具包(toolbox)。注:app方式對系統版本和配置會有一定要求,而且Windows需要你安裝微軟虛擬化產品Hyper-V,具體見app鏈接頁面。

APP

https://docs.docker.com/docke...

https://docs.docker.com/docke...

工具包

https://www.docker.com/produc...

以上方式本質上都會在你的系統中安裝docker-engine、docker-machine、docker-compose和VirtualBox(除了Windows的app方式)。因為docker高度依賴linux內核提供的cgroup,namespace 等特性和接口,所以mac和windows平台需要使用docker-machine和虛擬機在后台創建運行一個linux內核。

而我的安裝方式就是直接在 Mac 上使用brew,如果你未曾安裝brew,則在終端執行以下代碼:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安裝docker所需要的包:

brew install docker docker-machine docker-compose virtualbox

創建一個docker-machine:

docker-machine create -d virtualbox default

注:-d 指定使用virtualbox來創建default 為machine名稱

告訴主機如何找到docker-machine:

echo $(docker-machine env ) >> .zshrc

注:這里的.zshrc是我的用戶配置文件,如果你用bash,可以改為.bash_profile。

啟動docker-machine:

docker-machine start default Compose你的應用

docker-compose是用於定義和運行復雜Docker應用的工具。你可以在docker-compose.yml文件中定義一個多容器的應用,然后使用一條命令來啟動,然后所有預先定義好的操作都會被自動完成。

為了不重復造輪子,直接使用github上的第三方包。當然你也可以親自構建每一個你所需要的容器鏡像,然后用docker-compose.yml將所有容器組織起來運行,但這需要你具備一定的linux基礎和docker的運行機制和相關語法。

本人正在學習 laradock 這個基於Docker的開發環境包,然后根據自己的需要刪除了一些我認為不常用的部分、修改了部分配置以及增加了Elasticsearch容器,最終新開了自己的倉庫 DevDock 。當然,也推薦使用laradock。

我的倉庫目前支持的容器組合:

nginx , php-fpm , mysql , redis , mongo , apache2 , memcached , elasticsearch , workspace .

注:workspace和php-fpm一般會被其他容器所依賴,所以會自動運行,啟動時不必指定。

進入到你的應用的上級目錄:

git clone https://github.com/RystLee/DevDock.git

修改hosts

如果直接安裝啟動,是可以通過Docker IP : 192.168.99.100,就能直接訪問nginx的,但一般而言為了方便記憶,我們會去修改hosts文件,增加一條:

192.168.99.100 laravel.dev

修改你的nginx中的站點配置文件:

在DevDock目錄下找到nginx,修改sites目錄下的站點配置文件,通過修改本地的hosts來自定義域名,並在nginx容器中的sites文件夾下,修改相應的域名映射。

server_name laravel.dev

安裝啟動應用

cd DevDock docker-compose up -d nginx mysql ... # 后面跟上你想使用的容器即可

然后,耐心地等待開發環境自動搭建完成即可,如果中途出現錯誤,一般是因為GFW,網絡會不太通暢,重新執行一兩次就好,完成之后,打開瀏覽器,訪問: http://laravel.dev 即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM