Docker是十分優秀的軟件容器化平臺。它提供的容器技術將各類軟件和它們所依賴的運行環境打包成標準的可移植的container(容器)/image(鏡像),進而發佈到不一樣的平臺上運行,而且能保證項目開發和生產環境的一致性。php
做爲Web開發者,在Docker流行以前,要搭建開發環境一般有兩種選擇:一種是使用wamp、xampp、mamp等集成開發環境安裝包,另一種就是使用普通虛擬機來安裝linux服務器,而後經過下載一鍵安裝包(如:lnmp)或者逐個安裝作須要的軟件。前者雖然簡單,但太不靈活,想要安裝額外的軟件或者版本會很麻煩或者乾脆不知道如何下手;後者除了費時費力,佔用本機資源過多,可能會致使系統運行緩慢,並且若是你忘了及時生成快照,一旦失誤,追悔莫及。mysql
幸虧,Docker來了!它簡單易用,靈活多變,方便迅捷,掃除了以上種種弊端。若是你想稍微詳細的認識下這位虛擬化界的明星,傳送門(快速理解Docker)。linux
平時開發的環境通常都是Mac或者Windows,Linux暫時沒有研究,因此接下來只針對前二者寫下步驟,這兩個平臺,官方都推薦了兩種安裝方式:app和工具包(toolbox)。注:app方式對系統版本和配置會有必定要求,Mac版本會自動爲你安裝好VM(虛擬機),但Windows須要你安裝微軟虛擬化產品Hyper-V,而toolbox方式則須要你額外安裝virtualbox來做爲docker的VM。nginx
APPlaravel
工具包redis
以上方式本質上都會在你的系統中安裝docker-engine、docker-machine、docker-compose和VM。由於docker高度依賴linux內核提供的cgroup,namespace 等特性和接口,因此mac和windows平臺須要使用docker-machine和虛擬機在後臺建立運行一個linux內核。docker
我以前的的安裝方式就是直接在 Mac 上使用brew,但目前看來這種方式已經再也不推薦,強烈推薦使用原生的app方式!
docker-compose是用於定義和運行復雜Docker應用的工具。你能夠在docker-compose.yml文件中定義一個多容器的應用,而後使用一條命令來啓動,而後全部預先定義好的操做都會被自動完成。
爲了避免重複造輪子,直接使用github上的第三方包。固然你也能夠親自構建每個你所須要的容器鏡像,而後用docker-compose.yml將全部容器組織起來運行,但這須要你具有必定的linux基礎和docker的運行機制和相關語法。
本人正在學習laradock這個基於Docker的開發環境包,而後根據本身的須要刪除了一些我認爲不經常使用的部分、修改了部分配置以及增長了Elasticsearch容器,最終新開了本身的倉庫DevDock。固然,也推薦使用laradock。
個人倉庫目前支持的容器組合: nginx
, php-fpm
, mysql
, redis
, memcached
, elasticsearch
, workspace
.
注:workspace和php-fpm通常會被其餘容器所依賴,因此會自動運行,啓動時沒必要指定。
進入到你的應用的上級目錄:
git clone https://github.com/RystLee/DevDock.git
修改hosts
若是直接安裝啓動,是能夠經過 127.0.0.1,就能直接訪問nginx的,但通常而言爲了方便記憶,咱們會去修改hosts文件,增長一條:
127.0.0.1 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便可。
關於該開發環境包詳細使用,請直接查看github倉庫的說明文檔便可。
本文連接: https://macken.me/article/cre...
聲明 在轉載或修改本文後發佈的文章中註明原文來源信息的前提下,容許進行轉載該篇文章或經修改後發佈且不用告知本文做者。